当前位置: 首页 > 知识库问答 >
问题:

替换另一个字符串中最后出现的字符串[重复]

衡子琪
2023-03-14

假设我有一根绳子

string myWord="AAAAA";

我想把“AA”替换成“BB”,但只能是最后一次出现,就像这样:

"AAABB"

string.replace()和string.replaceFirst()都不能完成这项工作。有string.replaceLast()吗?如果没有,会有一个还是有替代方案也可以处理正则表达式?

共有3个答案

皇甫乐
2023-03-14

只需获取最后一个索引,并用要替换的内容替换表达式。

myWord是原始单词sayAABDCAADEF源字是您要替换的,说AA目标字是您要用sayBB替换它。

StringBuilder strb=new StringBuilder(myWord);    
int index=strb.lastIndexOf(sourceWord);    
strb.replace(index,sourceWord.length()+index,targetWord);    
return strb.toString();

当您只想用字符串替换字符串时,这很有用。更好的方法是使用模式匹配器并查找最后一个匹配索引。从该索引中获取子字符串,使用那里的替换函数,然后将其添加回原始字符串。这也将帮助您替换正则表达式

子车高歌
2023-03-14

你可以这样做:

myWord = myWord.replaceAll("AA$","BB");

$表示最后。

许安邦
2023-03-14

查找子字符串最后一次出现的索引。

String myWord = "AAAAAasdas";
String toReplace = "AA";
String replacement = "BBB";

int start = myWord.lastIndexOf(toReplace);

创建一个< code>StringBuilder(如果您愿意,可以连接字符串)。

StringBuilder builder = new StringBuilder();

在最后一个引用之前追加零件。

builder.append(myWord.substring(0, start));

附加您要用作替换的String

builder.append(replacement);

在原始字符串的最后一次出现之后追加该部分。

builder.append(myWord.substring(start + toReplace.length()));

你就完了。

System.out.println(builder);
 类似资料:
  • 问题内容: 有谁知道用一个字符串中的另一个字符串替换最后一个出现的字符串的快速方法? 问题答案: 您可以使用此功能:

  • 问题内容: 我有这样的字符串 我想用转义双引号(\“)替换最后一个双引号(”) 字符串的结果是 我怎样才能做到这一点。我知道要替换字符串的第一次出现。但不知道如何替换字符串的最后一次出现 问题答案: String str = “"Position, fix, dial"“; int ind = str.lastIndexOf(“"“); if( ind>=0 ) str = new StringB

  • 每当“q”被写为我附加TextWatcher的edittext的最后一个字符时,这个“q”就会被替换为“a”。我使用: 但是,当我测试代码时,当我输入“q”时,什么也没发生。一些帮助?非常感谢。

  • 问题内容: 我有以下数据框 我想更换和使用,所以最终的数据帧 我尝试了以下操作,但没有成功: 问题答案: 解决方案与通过: 如果需要将列中的所有值设置为一些:

  • 问题内容: 假设我有以下代码: 这段代码运行后,价值会 如果我以相反的顺序替换它们,则会发生类似的问题: 的值将是 我的目标是把成我怎么能做到呢? 问题答案: 使用Apache Commons StringUtils中的方法:

  • 我有以下数据框 我想用替换和,因此最终的数据帧是 我尝试了以下方法,但不起作用: