public static void novelEncryption() throws Exception {
try {
fw = new FileWriter("H:/workspace/Exercise2/src/VigenèreCipherNovel.txt");
} catch (Exception e) {
}
String res = "";
for (int i = 0, j = 0; i < plaintext.length(); i++) {
char c = plaintext.charAt(i);
if(c < 'a'|| c > 'z'){
continue;
}
else if (c=='\n'){
ciphertext = ciphertext + "\n";
}
res += (char) ((c + getKey().charAt(j) - 2 * 'a') % 26 + 'a');
j = ++j % getKey().length();
}
ciphertext=res;
fw.write(ciphertext);
fw.close();
}
В основном я делаю реализацию шифра Виженера, и я пытаюсь создать метод шифрования. Все работает нормально, но я хочу, чтобы структура зашифрованного текста String была такой же, как и открытый текст String. Другими словами, строка открытого текста, которую я итерация имеет абзацы и пробелы. Когда шифрование выполнено, текстовый файл имеет одну большую строку (одно слово). Я хочу сохранить абзацы и пробелы между словами после шифрования, но я не уверен, как это сделать.
P.S. Открытый текст String выглядит следующим образом (имеет пробелы между словами и абзацами).
Нажмите, чтобы просмотреть обычный текст
И я хочу добиться чего-то вроде этого
if (c < 'a'|| c > 'z') { continue; }
и следующий операторelse if ()
наif (c < 'a'|| c > 'z') { res += c; continue; }
. Тем не менее, вы действительно должны исправить свой код, чтобы он мог обрабатывать как прописные, так и строчные буквы. И, пожалуйста, не публикуйте и не давайте ссылки на изображения текста. Просто вставьте текст прямо в свой вопрос, спасибо. - person r3mainer   schedule 24.10.2017