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