Java での文字列分割のためのパイプ シンボルのエスケープ
Java String クラスには、文字列を配列に分割するための split() メソッドが用意されています。区切り文字または正規表現を使用して部分文字列を取得します。パイプ記号 (|) で分割すると、パイプ記号が正規表現のメタ文字であるため、予期しない動作が発生します。
この問題は正規表現のルールに起因します:
したがって、test.split("|") を使用する場合、 | は文字は、リテラルのパイプ記号としてではなく、OR 演算子として解釈されます。これを解決するには、 を使用してパイプ シンボルをエスケープする必要があります。
解決策 1: パイプ シンボルをエスケープする
パイプ シンボルをエスケープするには、二重バックスラッシュを使用します。文字列内の \ として。これは Java に | を指示します。は、メタ文字としてではなく、リテラル文字として扱う必要があります。
String test = "A|B|C||D"; String[] result = test.split("\|");
解決策 2: Pattern.quote() を使用する
または、パターンを使用することもできます。パイプのエスケープされたバージョンを作成する .quote() メソッドシンボル。
String test = "A|B|C||D"; Pattern pattern = Pattern.quote("|"); String[] result = test.split(pattern);
期待される出力:
どちらのソリューションも目的の出力を生成します:
>A< >B< >C< >< >D<
以上がJavaで文字列を分割するためにパイプシンボルを適切にエスケープする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。