2012-08-29 250 views

回答

3

只需使用replace到位replaceAll

replaceAll采取正则表达式作为输入,而不是一个字符串,但正则表达式。 []是正则表达式的重要组成部分。

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

+0

是一样的。作品当中没有[]字符串 – mbrc

+0

这是不一样的,看我编辑 – dantuch

+0

谢谢。我必须在 – mbrc

0

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

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

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

如果[发件人]是不变的,我不能使用\\? – mbrc

+0

http://stackoverflow.com/questions/60160/how-to-escape-text-for-regular-expression-in-java –

+0

或者你可以使用http://docs.oracle.com/javase/6/ docs/api/java/lang/String.html#像另一个人提到的那样替换(char,char) –

0

这工作:

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