ホームページ >Java >&#&チュートリアル >Javaで文字列を分割するためにパイプシンボルを適切にエスケープする方法は?

Javaで文字列を分割するためにパイプシンボルを適切にエスケープする方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 01:19:18335ブラウズ

How to Properly Escape the Pipe Symbol for String Splitting in Java?

Java での文字列分割のためのパイプ シンボルのエスケープ

Java String クラスには、文字列を配列に分割するための split() メソッドが用意されています。区切り文字または正規表現を使用して部分文字列を取得します。パイプ記号 (|) で分割すると、パイプ記号が正規表現のメタ文字であるため、予期しない動作が発生します。

この問題は正規表現のルールに起因します:

  • パイプ記号 (|) は、正規表現の OR 演算子を表します。
  • Java 文字列では、バックスラッシュ文字 () はエスケープです。

したがって、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。