2012-08-29 302 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);