我想实现一个Java的基本凯撒移位密码,将所有字母移到13位。下面是我的代码到目前为止。凯撒移位密码java
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”。