ホームページ > Java > &#&チュートリアル > Java の `split()` メソッドが空の文字列を削除しないようにするにはどうすればよいですか?

Java の `split()` メソッドが空の文字列を削除しないようにするにはどうすればよいですか?

DDD
リリース: 2024-12-29 13:10:15
オリジナル
530 人が閲覧しました

How Can I Prevent Java's `split()` Method from Removing Empty Strings?

Java 文字列分割での空の値の削除を修正する

Java 文字列で Split() メソッドを使用すると、予期しない結果が発生する可能性がありますここで、空の値は結果の配列から削除されます。これは次の例で確認できます:

String data = "5|6|7||8|9||";
String[] split = data.split("\|");
System.out.println(split.length);
ログイン後にコピー

この場合、8 つの値の配列を取得することが期待されます: [5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY] 。ただし、返される値は 6 つだけです。

この動作の理由は、split() メソッドがデフォルトで結果の配列から末尾の空の文字列を削除するためです。この動作を無効にして空の値を含めるには、split() のオーバーロード バージョンを使用できます。

String[] split = data.split("\|", -1);
ログイン後にコピー

limit パラメーターを負の値 (この場合は -1) に設定することで、メソッドに指示します。パターンをできるだけ多く適用し、末尾の空の文字列を含めます。

これが可能なのは、split(regex) が内部で split(regex, 0) を呼び出し、これにより、末尾の空の文字列。負の制限を指定すると、この動作が効果的に無効になり、空の値を含むすべての値がメソッドに強制的に保持されます。

例外:

削除することは重要です。末尾の空の文字列は、分割プロセスによって作成された場合にのみ意味を持ちます。空の文字列の場合はそれ以上分割できないため、分割すると単一の空の文字列値を持つ配列が作成されます。これは、split() が実際の分割を実行していないためです。そのため、空の文字列は、分割操作によって生成された空の文字列ではなく、元の入力を表します。

以上がJava の `split()` メソッドが空の文字列を削除しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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