Как заменить все вхождения слова в строке другим словом в Java? - PullRequest
4 голосов
/ 11 июля 2010

Я хочу заменить все вхождения слова в длинной строке другим словом, например, если я хочу заменить все вхождения слова «очень» на «чрезвычайно» в следующей строке.

string story = "He became a well decorated soldier in the line of fire when he and his men walked into the battle. He acted very bravely and he was very courageous."

Думаю, я бы использовал метод replaceAll(), но я бы просто вставил такие слова, как

story.replaceAll("very ", "extremely ");

Ответы [ 3 ]

15 голосов
/ 11 июля 2010

Вам нужно сделать два изменения:

  • Строки неизменны в Java - метод replaceAll не изменяет строку - он создает новую. Вам необходимо присвоить результат обратного вызова вашей переменной.
  • Используйте границы слов ('\b'), иначе every станет eextremely.

Итак, ваш код будет выглядеть так:

story = story.replaceAll("\\bvery\\b", "extremely");

Вы также можете подумать, что вы хотите, чтобы произошло с «Очень» или «ОЧЕНЬ». Например, вы можете захотеть, чтобы это стало «Чрезвычайно» и «ЧРЕЗВЫЧАЙНО» соответственно.

1 голос
/ 11 июля 2010
story = story.replaceAll("very ", "extremely ");
0 голосов
/ 20 мая 2015

сообщение = message.replaceAll ( "\\ Ь" + слово + "\\ Ь", newword);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...