字符串数组长度显示为1,即使数组在逗号(,)之后调用为空
这是我的代码:
serialNumbers = ""; String[] serialArray = serialNumbers.split(","); int arrayLength = serialArray.length;
arrayLength显示1,即使serialArray中没有值。 我希望在这种情况下长度应该返回0。
从文档 :
如果表达式与输入的任何部分都不匹配,那么结果数组只有一个元素,即该字符串。
请注意,此doc来自String.split(String, int)
方法,该方法是从String.split(String)
调用的。
拆分始终返回至少一个元素。
在未找到分隔符的情况下,整个输入以单元素数组的forms返回。
serialArray
包含[""]
,它是1个元素
如果你看一下String.class的实现(参见下面的代码片段)。 这里off
显示匹配计数, this
是当前正在处理拆分操作的字符串,你的字符串为serialNumbers = "";
。 这就是为什么它在数组中返回一个项目。
// If no match was found, return this if (off == 0) return new String[]{this};
公共类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; } }
}