替换另一个字符串中某个字符串的最后一次出现
假设我有一个字符串
string myWord="AAAAA";
我想用“BB”替换“AA”,但只是最后一次出现,如下所示:
"AAABB"
string.replace() 和 string.replaceFirst() 都不能完成这项工作。有没有 string.replaceLast()?而且,如果没有,是否会有一个,或者是否有另一种替代方案也使用正则表达式?
假设我有一个字符串
string myWord="AAAAA";
我想用“BB”替换“AA”,但只是最后一次出现,如下所示:
"AAABB"
string.replace() 和 string.replaceFirst() 都不能完成这项工作。有没有 string.replaceLast()?而且,如果没有,是否会有一个,或者是否有另一种替代方案也使用正则表达式?
查找上次出现的子字符串的索引。
String myWord = "AAAAAasdas";
String toReplace = "AA";
String replacement = "BBB";
int start = myWord.lastIndexOf(toReplace);
创建一个(如果需要,可以只连接字符串)。StringBuilder
StringBuilder builder = new StringBuilder();
将部件追加到最后一次出现之前。
builder.append(myWord.substring(0, start));
附加要用作替换的 。String
builder.append(replacement);
将部分追加到原始'String.的最后一次出现之后。
builder.append(myWord.substring(start + toReplace.length()));
大功告成。
System.out.println(builder);
您可以执行以下操作:
myWord = myWord.replaceAll("AA$","BB");
$
意味着在最后。