これが私のコードです:
serialNumbers = "";
String[] serialArray = serialNumbers.split(",");
int arrayLength = serialArray.length;
serialArray に値がなくても、arrayLength は 1 を示しています。この場合、長さは 0 を返すはずだと思っていました。
ドキュメントから:
式が入力のどの部分とも一致しない場合、結果の配列には 1 つの要素、つまりこの文字列のみが含まれます。
このドキュメントは、からString.split(String, int)
呼び出されるメソッドからのものであることに注意してください。String.split(String)
Split は常に少なくとも 1 つの要素を返します。
区切り文字が見つからない場合、入力全体が単一要素の配列で返されます。
serialArray
[""]
1 要素である を含む
パブリック クラス TestArgs {
public static void main(String[] args) {
String checkString = "";
System.out.println("" + splitString(checkString));
}
public static int splitString(String checkString) {
if (checkString.indexOf(",") != -1 || !"".equals(checkString)) {
System.out.println("hello " + checkString.split(",").length);
return checkString.split(",").length;
} else {
return 0;
}
}
}