是否可以split
返回 null String[]
?我很好奇,因为我想尝试在我的代码中尽可能地进行防御,而无需进行不必要的检查。代码如下:
String[] parts = myString.split("\\w");
parts
在使用后拆分之前是否需要执行空检查?
是否可以split
返回 null String[]
?我很好奇,因为我想尝试在我的代码中尽可能地进行防御,而无需进行不必要的检查。代码如下:
String[] parts = myString.split("\\w");
parts
在使用后拆分之前是否需要执行空检查?
它从不返回 null。如果您不确定,您应该始终检查该方法的 javadoc。例如String#split(String)
说
此方法的工作方式就像调用双参数
split
方法一样
...并String#split(String,int)
说:
如果表达式与输入的任何部分都不匹配,则结果数组只有一个元素,即这个字符串。
从 Javadoc 中,您还可以了解会发生什么样的异常,更重要的是为什么会抛出这些异常。另外要检查的一件非常重要的事情是这些类是否是线程安全的。
我建议您在 API 不清楚的时候下载 Java 源代码。这里的所有答案都只是告诉你答案,但你应该亲自看看。您可以从此处下载 Java 源代码(查看页面底部附近)。
通过遵循源代码,您最终将获得String[] Pattern.split(CharSequence input, int limit)
. 返回值来自被调用的非空ArrayList
值。不返回 null:如果列表为空,您将返回一个空数组。toArray
toArray
所以最后,不,你不必检查空值。
不,您不需要检查零件上的空值。
Split 方法调用 Patter.split 方法,该方法在方法的开头执行此操作:
ArrayList<String> matchList = new ArrayList<String>();
最后执行 matchList.toArray() 返回一个数组。
所以不需要测试空值。