1

.splitが呼び出されたときにnullノードの配列を返す可能性のある文字列はありますか?これが私が試したことです:

    String string = "test,,test";
    if (string != null && !string.isEmpty()) {
        String[] parsedString = string.split(",");
        for (String stringNode : parsedString) {
            if (stringNode != null) {
                //perform logic here. Omitted for the purpose of this question.
            }
        }
    }

メソッドでnull文字列を処理できるようにしたいのですが、String.split()がnullノードの配列を返すことができない場合は、おそらく削除しても安全ですか?

4

4 に答える 4

6

nullいいえ、String.split(String regex)は、要素を 含む配列を返すことはできません。

説明するケースは3つだけです。

  1. regexが無効で、aPatternSyntaxExceptionがスローされます
  2. regexが見つからない場合、配列には元の文字列のみが含まれます。
  3. regexが見つかった場合、文字列は分割されます。
于 2012-07-23T15:30:04.577 に答える
4

StringUtilsを見てください

split()メソッド。

String str = "1,2,3,,4";
    System.out.println(Arrays.toString(str.split(",")));
    System.out.println(Arrays.toString(StringUtils.split(str,",")));

出力:

[1, 2, 3, , 4]
[1, 2, 3, 4]

これはあなたが期待することですか?

お役に立てれば...

于 2012-07-23T15:42:27.187 に答える
0

はい、削除できますif (stringNode != null)。null値は返されません。空の文字列がによって返される場合がありますString.split()(つまり、配列要素として)。

于 2012-07-23T15:38:51.413 に答える
-1

Javadocによると、String.split()によってnullまたは空の文字列は返されません。

于 2012-07-23T15:37:22.663 に答える