Мне нужно заменить слово другим, не используя 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");
Когда я пытаюсь это я стирать слова после того, как собака, потому что «тринадцать» больше, чем «один» ..
Такая же проблема, если слово, которое я хочу заменить, короче оригинала. Я заменил оставшиеся буквы пустыми буквами, но у меня есть уродливые пробелы ...
Как я могу продолжить?
Какова конкретная причина, по которой вы не можете заменить?Это задание? У вас есть ограничения памяти? –
Да, это задание. – ChrisBlp
Что вам нужно изменить? Вам нужно изменить строку в памяти или файл? – Kenster