替换字符串中字符的上次出现次数

时间:2013-05-21 08:29:49

标签: java string replace last-occurrence

我有一个像这样的字符串

"Position, fix, dial"

我想用转义双引号(\“)

替换最后一个双引号(”)

字符串的结果是

"Position, fix, dial\"

我该怎么做?我知道替换第一次出现的字符串。但不知道如何替换最后一次出现的字符串

4 个答案:

答案 0 :(得分:51)

这应该有效:

String replaceLast(String string, String substring, String replacement)
{
  int index = string.lastIndexOf(substring);
  if (index == -1)
    return string;
  return string.substring(0, index) + replacement
          + string.substring(index+substring.length());
}

此:

System.out.println(replaceLast("\"Position, fix, dial\"", "\"", "\\\""));

打印:

"Position, fix, dial\"

Test

答案 1 :(得分:39)

String str = "\"Position, fix, dial\"";
int ind = str.lastIndexOf("\"");
if( ind>=0 )
    str = new StringBuilder(str).replace(ind, ind+1,"\\\"").toString();
System.out.println(str);

答案 2 :(得分:1)

如果您只想删除las字符(如果有的话),这是一行方法。我将它用于目录。

localDir = (dir.endsWith("/")) ? dir.substring(0,dir.lastIndexOf("/")) : dir;

答案 3 :(得分:0)

String docId = "918e07,454f_id,did";
StringBuffer buffer = new StringBuffer(docId);
docId = buffer.reverse().toString().replaceFirst(",",";");
docId = new StringBuffer(docId).reverse().toString();