首先,我要说我正在学习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。

09-17 16:54