Шифрование Виженера, но с сохранением структуры текстового файла

    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 выглядит следующим образом (имеет пробелы между словами и абзацами).

Нажмите, чтобы просмотреть обычный текст

И я хочу добиться чего-то вроде этого

Нажмите, чтобы увидеть, чего я хочу достичь


person Ivaylo Georgiev    schedule 23.10.2017    source источник
comment
Недавно я добавил некоторое представление о похожей проблеме, возможно, вы сможете адаптировать решение с Python на Java? Не должно слишком отличаться от того, что вы хотите... title="что не так с моей функцией шифрования Vigenere Cypher"> stackoverflow.com/questions/46865005/   -  person Oliver Baumann    schedule 23.10.2017
comment
Боюсь, я не знаком с python @OliverBaumann, но я посмотрю на него.   -  person Ivaylo Georgiev    schedule 24.10.2017
comment
Просто замените if (c < 'a'|| c > 'z') { continue; } и следующий оператор else if () на if (c < 'a'|| c > 'z') { res += c; continue; }. Тем не менее, вы действительно должны исправить свой код, чтобы он мог обрабатывать как прописные, так и строчные буквы. И, пожалуйста, не публикуйте и не давайте ссылки на изображения текста. Просто вставьте текст прямо в свой вопрос, спасибо.   -  person r3mainer    schedule 24.10.2017