首先,我要说我正在学习Java。我遇到了一个问题,从字母“ z”循环回到“ a”。
System.out.println("You chose Decryption!");
br.nextLine();
System.out.println("Type a message:");
String msg = br.nextLine();
String decryptedMessage = "";
for (int i = 0; i < msg.length(); i++){
int decryption = msg.charAt(i);
//Trying to loop back from "a" to "z"
decryption = ((char)decryption % 26);
decryptedMessage = decryptedMessage + ((char) (decryption - 1));
}
System.out.println(decryptedMessage);
我使用了模运算
decryption = ((char)decryption % 26);
,但是代码给了我一个方括号([),而不是字母“ a”。为什么这不起作用? 最佳答案
如上所述,对ASCII table char'a'的乘积等于97(DEC)。
我强烈建议您浏览此表。它将帮助您了解引擎盖下发生的事情。
因此,实际上您写的'a'+1
可以转换为97 + 1。