我做了一个简单的 ROT13 程序,但我不明白一件事:
a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
(a.length+1).times do |i|
print a[i + 13]
if i>13
print a[i %14]
end
end
输出:
NOPQRSTUVWXYZABCDEFGHIJKLM
如果我不在 a.length
之后添加 +1
,则迭代以字母 L
结束。但是,如果我在迭代中使用 print a[i]
,它通常以 A
开始并以 Z
结束,没有 + 1
需要添加。
有人可以为我解释这个谜团吗?
最佳答案
我只需要一个快速的 rot13 one liner,这个 SO 条目是第一个谷歌结果。我继续搜索并找到了一个由@xfaider 设计的超小型产品,它对我的目的来说效果很好。
只需将它张贴在这里,供下一个想要单眼皮的人使用。
string.tr("A-Za-z", "N-ZA-Mn-za-m")
关于ruby - Easy ROT13 Ruby "programme"之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40662287/