Как заменить последнее слово в строке - PullRequest
3 голосов
/ 22 августа 2011

Кто-нибудь знает, как заменить последнее слово в строке.

В настоящее время я делаю:

someStr = someStr.replace(someStr.substring(someStr.lastIndexOf(" ") + 1), "New Word");

Приведенный выше код заменяет каждое вхождениеслово в строке.

Спасибо.

Ответы [ 6 ]

9 голосов
/ 22 августа 2011

Вы можете создать новую строку "с нуля", например:

someStr = someStr.substring(0, someStr.lastIndexOf(" ")) + " New Word";

Другой вариант (если вы действительно хотите использовать «заменить» :) - это сделать

someStr = someStr.replaceAll(" \\S*$", " New Word");

replaceAll использует регулярные выражения, а \S*$ означает пробел, за которым следуют некоторые непробельные символы, а затемконец строки(То есть заменить символы после последнего пробела.)

2 голосов
/ 22 августа 2011

Ты не далеко от решения. Просто сохраните исходную строку до последнего индекса " " и добавьте новое слово к этой подстроке. Нет необходимости в replace здесь.

0 голосов
/ 02 февраля 2014

Попробуйте это регулярное выражение (^.+)b(.+$)

Пример (Заменить последний символ b )

System.out.println("1abchhhabcjjjabc".replaceFirst("(^.+)b(.+$)", "$1$2"));
0 голосов
/ 22 августа 2011

используйте это: someStr. substring(0, someStr.lastIndexOf(" ")) + "New Word".

Вы также можете использовать регулярное выражение, например, someStr.repalaceFirst ("\ s + \ S + $", "" + "New Word")

0 голосов
/ 22 августа 2011

попробуй:

someStr = someStr.substring( someStr.lastIndexOf(" ") ) + " " + new_word;
0 голосов
/ 22 августа 2011

Ваш код выполняет замену подстроки на «Новое слово».

Вместо этого сначала нужно вставить подстроку, а затем заменить эту строку.сделай это

someStr = someStr.substring(0, someStr.lastIndexOf(" ") + 1) + "New word"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...