当调用.split时,是否有任何字符串可以返回带有空节点的数组?这是我试过的:
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.
}
}
}
我希望我的方法能够处理一个空字符串,但是如果String.split()不能返回一个带有空节点的数组,那么删除它可能是安全的吗?
答案 0 :(得分:6)
不,String.split(String regex)永远不能返回其中包含null
元素的数组。
只有三种情况需要考虑:
regex
无效,引发了PatternSyntaxException
regex
,数组将只包含原始字符串。regex
,字符串被拆分。答案 1 :(得分:4)
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]
这是你期望的吗?
希望这会有所帮助......
答案 2 :(得分:0)
是的,您可以删除if (stringNode != null)
。
不会返回空值。 String.split()
可能会返回一个空字符串(作为数组元素,我的意思是)。
答案 3 :(得分:-1)
根据Javadoc,String.split()不会返回null和空字符串。