【发布时间】:2015-02-06 10:44:35
【问题描述】:
我正在尝试为 Java 实现一个基本的 Caesar Shift Cipher,以将所有字母移位 13。这是我目前的代码。
public static String cipher(String sentence){
String s = "";
for(int i = 0; i < sentence.length(); i++){
char c = (char)(sentence.charAt(i) + 13);
if (c > 'z')
s += (char)(sentence.charAt(i) - 13);
else
s += (char)(sentence.charAt(i) + 13);
}
return s;
}
但是,程序也会更改数字和特殊字符的值,我不希望这样。
String sentence = "abc123";
返回 "nop>?@"
有没有一种简单的方法可以避免特殊字符而只关注字母?
编辑:我应该提到我想保留所有其他位。所以“abc123”会返回“nop123”。
【问题讨论】:
标签: java encryption