0
String val = "some random text.CHR(10)";
val = val.replaceAll("CHR(10)", "\n");

これは置き換えではありません。val の結果が「何らかのランダム テキストです。\n」と期待しています。JDK 1.4 を使用しています。

4

2 に答える 2

3

括弧をエスケープしていません:

val = val.replaceAll("CHR\\(10\\)", "\n");

また

val = val.replaceAll("CHR[(]10[)]", "\n");

またはquote()パターン

val = val.replaceAll(Pattern.quote("CHR(10)"), "\n");
于 2013-07-10T19:03:48.507 に答える
2

ここでは使用しないreplaceAllでください。最初のパラメーターとして正規表現を取ります。正規表現で()は、グループの作成に使用されます。括弧を一致させるには、エスケープする必要があります。

val = val.replaceAll("CHR\\(10\\)", "\n");

または、次を使用することをお勧めしますreplace

val = val.replace("CHR(10)", "\n");

注:String.replace(CharSequence, CharSequence) Java 1.4 にはなかったようです。したがって、最初のオプションのみが残されます。

于 2013-07-10T19:03:09.140 に答える