Possible Duplicate:
ROT-13 function in java?


我必须将所有字符从字符串中的13个位置转移

private static String encode(String line) {
    char[] toEncode = line.toCharArray();
    for (int i = 0; i < toEncode.length; i++) {
        if (Character.isLetter(toEncode[i])) {
            toEncode[i] += 13;
        }
    }
    line = String.valueOf(toEncode);
    return line;
}

问题是,例如“z”等于?。我该如何解决?

谢谢。

最佳答案

这是因为“z”之后的下一个字符是标点字符等等。您可以移动以使“z”为“n”。

toEncode[i] = (toEncode[i] + 13 - (int)'a') % 26 + (int)'a';

09-28 14:20