嘿,最近我的任务是创建一个应用程序,该应用程序读取消息并使用 Java 中的凯撒密码对其进行加密。
直到我遇到添加数字密码会将字母 az/AZ 转换为特殊符号的部分时,我才真正遇到问题,我真的不知道该怎么做。
这是我的解决方案的代码:
private String caesarCipher(String message) {
Scanner input = new Scanner(System.in);
StringBuilder cipher = new StringBuilder();
char ch;
int key;
System.out.print("Enter a key: ");
key = Integer.parseInt(input.nextLine());
for(int i = 0; i < message.length(); i++) {
ch = message.charAt(i);
if(ch >= 'a' && ch <= 'z'){
ch = (char)(ch + key);
if(ch > 'z'){
ch = (char)(ch - 'z' + 'a' - 1);
}
cipher.append(ch);
}
else if(ch >= 'A' && ch <= 'Z'){
ch = (char)(ch + key);
if(ch > 'Z'){
ch = (char)(ch - 'Z' + 'A' - 1);
}
cipher.append(ch);
}
else {
cipher.append(ch);
}
}
return cipher.toString();
}
有人可以向我解释以下陈述背后的过程和推理吗:
if(ch > 'z'){
ch = (char)(ch - 'z' + 'a' - 1);
}
慕森卡
相关分类