我正在尝试解密Vigenere_Cipher
当我输入BEXR TKGKTRQFARI
时输出为JAVAPROGRAMMING
但我想要
放置JAVA PROGRAMMING
这样的空间。
我的密码
public static String VigenereDecipher(String text) {
String keyword = "SECRET";
String decipheredText = "";
text = text.toUpperCase();
for (int i = 0, j = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (c < 'A' || c > 'Z') continue;
decipheredText += (char)((c - keyword.charAt(j) + 26) % 26 + 'A');
j = ++j % keyword.length();
}
return decipheredText;
}
最佳答案
您明确地忽略了空格。您只需要添加以下行:
if (c == ' ') {
decipheredText += ' ';
}
确保将其放在此行之前:
if (c < 'A' || c > 'Z') continue;