2

文字「|」を削除したい String#replaceAll()メソッドを使用して。ただし、最初のパラメーターは正規表現のメタ文字として認識されます。

エスケープ文字で試しreplaceAll("\|", "");ましたが、コンパイルできません。

「|」を削除または置換する方法はありますか Javaによる文字?

4

3 に答える 3

8

|を使用するときはreplaceAll()、次のようにダブルエスケープする必要があります。

myString.replaceAll("\\|", "");

これは、文字列が実際には2 回解析されるためです。最初はリテラル文字列として、次に正規表現として解析されます。したがって"\\|"、最初の解析を開始すると、 のリテラル文字列が得\|られ、正規表現パーサーはそれを として認識し|ます。これは、慣れるまで少し戸惑うかもしれません。

于 2012-09-20T06:10:03.420 に答える
3

正解は、replaceAll()(正規表現を置き換える)使用せず、replace()単に文字を置き換える使用です。

replace("|", "");

fyiは、メソッド名に「all」が含まれていないにもかかわらず、実際には、指定された文字のすべてのインスタンスを置き換えます。

于 2012-09-20T06:17:46.357 に答える
1

また、これも仕事をします:

String test = "Hello | Hi | Test";
System.out.println(test.replace("|", ""));

ここでは、文字列置換メソッドが便利なツールです。正規表現を使用する必要はありません。

于 2012-09-20T06:17:38.107 に答える