有人知道如何替换字符串中的最后一个单词吗?
我目前的做法是:
someStr = someStr.replace(someStr.substring(someStr.lastIndexOf(" ") + 1), "New Word");
上述代码会替换字符串中每个单词的所有出现。谢谢。
string myString = "Hello World";
”someStr = someStr.substring(0, someStr.lastIndexOf(" ")) + " New Word";
someStr = someStr.replaceAll(" \\S*$", " New Word");
replaceAll
使用正则表达式,\S*$
表示一个空格,后跟一些非空格字符,后跟字符串的结尾。(即替换最后一个空格后面的字符。)
您离解决方案不远了。只需保留原始字符串直到最后一个" "
的索引,并将新单词附加到此子字符串即可。这里不需要使用replace
。
someStr=
的赋值吗? - BitmapsomeStr = someStr.substring(0, someStr.lastIndexOf(" ") + 1) + "New word"
尝试:
someStr = someStr.substring( someStr.lastIndexOf(" ") ) + " " + new_word;
使用以下代码:someStr.substring(0, someStr.lastIndexOf(" ")) + "New Word"
。
您也可以使用正则表达式,例如:someStr.repalaceFirst("\s+\S+$", " " + "New Word")
尝试使用这个正则表达式 (^.+)b(.+$)
示例(替换最后一个b字符)
System.out.println("1abchhhabcjjjabc".replaceFirst("(^.+)b(.+$)", "$1$2"));
@aioobe
我有一个字符串,类似于 "19-05-2011 00:00 - 一些文本",你知道如何将日期值替换为空字符串吗? - BitmapyourString.substring(16)
?:-) - aioobeyourString.substring(0,16)
来完成它。 - aioobe