Java Vigenere Cipher - PullRequest
       13

Java Vigenere Cipher

0 голосов
/ 29 ноября 2018

Я пытаюсь расшифровать 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;
}

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Вы игнорируете пробел.Проверьте наличие пробела, поскольку вы проверяете диапазон символов от «A» до «Z», и добавьте его в decipherText как пробел, поскольку вы не хотите, чтобы пробел обрабатывался как другой символ.

0 голосов
/ 29 ноября 2018

Вы явно игнорируете пробелы.Вам просто нужно добавить эту строку:

if (c == ' ') {
   decipheredText += ' ';
}

Убедитесь, что поставили прямо перед этой строкой:

if (c < 'A' || c > 'Z') continue;
...