Мне нужно заменить слово на другое без использования функций replace
и replaceAll
в тексте.
Если слово, которое я хочу заменить, имеет ту же длину, что и исходное, проблем не возникает. Проблема в том, что слово, которое я хочу заменить, длиннее или короче исходного.
Например: я хочу заменить «один» на «тринадцать» в строке «У меня есть одна собака». Вот что я пытался сделать (я использую класс RandomAccessFile
):
RandomAccessFile r = new RandomAccessFile("toto.txt","rw")
r.seek(position); // imagine that position is the right cursor which take place under the o from the word "one"
r.writeBytes("thirteen");
Когда я пытаюсь это сделать, я стираю слова после собаки, потому что «тринадцать» длиннее, чем «один»..
Та же проблема, если слово, которое я хочу заменить, короче исходного. Я заменил оставшиеся буквы пустыми буквами, но у меня есть уродливые пробелы...
Как я могу продолжить?