当string包含[]字符时,替换string中的substring

时间:2012-08-29 19:05:03

标签: java

我想替换字符串中的子字符串。 例如:

localStringBuilder is for example "[sender] is xxxx xxxx xxx".

当我跑

localStringBuilder.toString().replaceAll("[sender]", callerName);

无法正常工作。问题在于[]个字符。怎么解决这个问题?

4 个答案:

答案 0 :(得分:3)

只需使用replace代替replaceAll

replaceAll将REGEX作为输入,而不是String,而是正则表达式。 []是用于对表达式进行分组的正则表达式的重要部分。

localStringBuilder.toString().replace("[sender]", callerName);将按预期工作,因为它将普通字符串作为两个参数。

is the same. Works when is no [] characters in string - @mbrc 1分钟前

不正确,我已测试

public static void main(String[] args) {
    String s = "asd[something]123";
    String replace = s.replace("[something]", "new1");
    System.out.println(replace);
}

输出:asdnew1123

答案 1 :(得分:0)

replaceAll返回带有替换的新字符串。它不会替换原始字符串中的字符。

  

String newString = localStringBuilder.toString()。replaceAll(“[sender]”,callerName);

答案 2 :(得分:0)

使用此

   localStringBuilder.toString().replaceAll("\\[sender\\]", callerName);

答案 3 :(得分:0)

这有效:

locaStringBuilder.toString().replaceAll("\\[sender\\]", callerName);