Подтвердить что ты не робот

Удаление определенного слова из строки

Я пытаюсь удалить определенное слово из определенной строки с помощью функции replace() или replaceAll(), но они удаляют все вхождения этого слова, даже если они являются частью другого слова!

Пример:

String content = "is not like is, but mistakes are common";
content = content.replace("is", "");

вывод: "not like , but mtakes are common"

желаемый результат: "not like , but mistakes are common"

Как я могу заменить только целые слова из строки?

4b9b3361

Ответ 1

Что, черт возьми,

String regex = "\\s*\\bis\\b\\s*";
content = content.replaceAll(regex, "");

Помните, что вам нужно использовать replaceAll(...) для использования регулярных выражений, а не replace(...)

  • \\b дает вам границы слов
  • \\s* отбрасывает любое свободное пространство по обе стороны от удаляемого слова (если вы также хотите удалить это).

Ответ 2

content = content.replaceAll("\\Wis\\W|^is\\W|\\Wis$", "");

Ответ 3

Вы можете попробовать заменить "is" на "". Это пробел до и один за другим, замененный одним пробелом.

Update:

Чтобы заставить его работать для первого "есть" в предложении, также выполните другую замену "is" для "". Замена первого и первого пробела с пустой строкой.