3

substringinstringを置き換えたい。例えば:

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

そして私が走るとき

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

正しく機能していません。問題は[]文字付きです。これを解決する方法は?

4

4 に答える 4

4

replace代わりに使用するだけreplaceAll

replaceAll文字列ではなく正規表現を入力として受け取ります。[]式をグループ化するために使用する正規表現の重要な部分です。

localStringBuilder.toString().replace("[sender]", callerName);両方のパラメータとして通常の文字列を使用するため、期待どおりに機能します。

is the same. Works when is no [] characters in string–@mbrc1分前

真実ではありません、私はそれをテストしました:

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

出力:asdnew1123

于 2012-08-29T19:06:19.433 に答える
0

replaceAllは、置換を含む新しい文字列を返します。元の文字列の文字は置き換えられません。

String newString = localStringBuilder.toString()。replaceAll( "[sender]"、callerName);

于 2012-08-29T19:07:02.610 に答える
0

これを使って

   localStringBuilder.toString().replaceAll("\\[sender\\]", callerName);
于 2012-08-29T19:07:39.167 に答える
0

これは機能します:

locaStringBuilder.toString().replaceAll("\\[sender\\]", callerName);
于 2012-08-29T19:08:14.750 に答える