假设我有一个字符串
string myWord="AAAAA";
Run Code Online (Sandbox Code Playgroud)
我想将"AA"替换为"BB",但仅限于最后一次出现,如下所示:
"AAABB"
Run Code Online (Sandbox Code Playgroud)
无论是与string.replace()也不string.replaceFirst()会做这项工作.有没有string.replaceLast()?而且,如果没有,是否会有一个或者有替代方案也在使用正则表达式?
Ami*_*oki 19
你可以这样做:
myWord = myWord.replaceAll("AA$","BB");
Run Code Online (Sandbox Code Playgroud)
$ 意思是在最后.
Sot*_*lis 17
查找最后一次出现的子字符串的索引.
String myWord = "AAAAAasdas";
String toReplace = "AA";
String replacement = "BBB";
int start = myWord.lastIndexOf(toReplace);
Run Code Online (Sandbox Code Playgroud)
创建一个StringBuilder(你可以根据需要连接字符串).
StringBuilder builder = new StringBuilder();
Run Code Online (Sandbox Code Playgroud)
在最后一次出现之前附加零件.
builder.append(myWord.substring(0, start));
Run Code Online (Sandbox Code Playgroud)
附加String您想要用作替代品.
builder.append(replacement);
Run Code Online (Sandbox Code Playgroud)
从最初的`String追加最后一次出现后的部分.
builder.append(myWord.substring(start + toReplace.length()));
Run Code Online (Sandbox Code Playgroud)
而且你已经完成了.
System.out.println(builder);
Run Code Online (Sandbox Code Playgroud)
只需获取最后一个索引,然后将表达式替换为您想要替换的内容即可。
myWord是原话所说AABDCAADEF。sourceWord是你想要替换的内容, sayAA
targetWord是你想要用 say 替换的内容BB。
StringBuilder strb=new StringBuilder(myWord);
int index=strb.lastIndexOf(sourceWord);
strb.replace(index,sourceWord.length()+index,targetWord);
return strb.toString();
Run Code Online (Sandbox Code Playgroud)
当您只想用字符串替换字符串时,这很有用。更好的方法是使用模式匹配器并查找最后一个匹配的索引。从该索引中获取子字符串,使用替换函数,然后将其添加回原始字符串。这也将帮助您替换正则表达式
| 归档时间: |
|
| 查看次数: |
23950 次 |
| 最近记录: |