概要:
動作Java 8 では String.split() の内容が大幅に変更され、結果配列の先頭の空の文字列が次のようになりました。以前のバージョンとは処理が異なります。この変更は、正しく理解されていない場合、予期しない結果を招く可能性があります。
Java 7 以前:
Java 8 より前のバージョンでは、String.split() に入力文字列の先頭で正の幅の一致があった場合、結果配列の先頭に空の文字列が返されます。ただし、先頭のゼロ幅一致は含まれませんでした。
Java 8 以降:
Java 8 では、分割ロジックに追加の条件が追加されました。現在、空の先頭部分文字列は、入力文字列の先頭でのゼロ幅一致の結果配列に含まれません。この変更は、一貫性を向上させ、空の文字列アーティファクトを防ぐことを目的としています。
説明:
次の例では、文字列 "abc" を空の文字列に分割しています。 Java 7 および 8:
// Java 7 String[] tokens1 = "abc".split(""); // Java 8 String[] tokens2 = "abc".split("");
互換性の維持:
Java 7 と Java 8 の両方との互換性を維持する必要がある場合は、次のガイドラインに従うことができます:
Java 8 および上:
Java 7 および前:
以上がJava 8 の「String.split()」で先頭の空の文字列が省略される場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。