ホームページ > Java > &#&チュートリアル > 文字列を「|」で分割するときに Java の `split()` メソッドが失敗するのはなぜですかどうすれば修正できますか?

文字列を「|」で分割するときに Java の `split()` メソッドが失敗するのはなぜですかどうすれば修正できますか?

Patricia Arquette
リリース: 2024-12-21 06:42:11
オリジナル
853 人が閲覧しました

Why Does Java's `split()` Method Fail When Splitting Strings by

パイプ シンボルによる Java 文字列の分割: 効果のない Split() メソッドのトラブルシューティング

パイプによる文字列の分割に使用される Java の Split() メソッド記号 (「|」) を使用すると、次のように予期しない結果が生じる可能性があります。例:

public static void main(String[] args) {
    String test = "A|B|C||D";

    String[] result = test.split("|");

    for (String s : result) {
        System.out.println(">"+s+"<");
    }
}
ログイン後にコピー

意図した出力の代わりに:

>A<
>B<
>C<
><
>D<
ログイン後にコピー

コードは次のように生成します:

><
>A<
>|
>B<
>|
>C<
>|
>|
>D<
ログイン後にコピー

なぜこれが起こるのですか?

問題は、split() メソッドの構文にあります。パイプ記号「|」は正規表現で特別な意味を持ち、「OR」演算子を表します。パイプ記号を文字通り区切り文字として使用するには、バックスラッシュ () を使用してエスケープする必要があります。

コードを修正するには、次の方法を使用できます。

// Option 1: Escaping the pipe symbol
String[] result = test.split("\|");
ログイン後にコピー
// Option 2: Utilizing Pattern.quote()
import java.util.regex.Pattern;
String[] result = test.split(Pattern.quote("|"));
ログイン後にコピー

パイプ記号をエスケープすると、正規表現におけるその特別なステータスが抑制され、リテラルの区切り文字として解釈できるようになります。

以上が文字列を「|」で分割するときに Java の `split()` メソッドが失敗するのはなぜですかどうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート