有一个加密问题,其中包含在字符串中的每个英文字母字符都必须替换为其“镜像”,即 从头到尾相同的数字 - a→z, b→y, c→x, ... x→c, y →b, z→a。
我试图通过字符串在没有数组或列表的情况下执行此操作 - 结果,替换仅适用于字母表的最后一部分,即 会将字符从n更改z为所需的字符,将字符从a更改为m- 不,使它们保持原始形式。
public class Main {
public static void main(String[] args) {
String alphabet = "abcdefghijklmnopqrstuvwxyz";
Scanner scanner = new Scanner(System.in);
String initialPhrase = scanner.nextLine().trim();
String encryptedPhrase = "";
for (int i = 0; i < initialPhrase.length(); i++) {
encryptedPhrase += String.valueOf(encrypt(initialPhrase.charAt(i), alphabet));
}
System.out.println(encryptedPhrase);
}
public static char encrypt(char ch, String str) {
for (int i = 0; i < str.length(); i++) {
if (ch == str.charAt(i)) {
ch = str.charAt(str.length() - i - 1);
}
}
return ch;
}
}
谁能解释为什么该方法encrypt(ch, str)仅适用于字母表的后半部分?
