Java String.split 是否有可能返回 null String[]

2022-09-01 00:35:46

是否可以返回空值?我很好奇,因为我想尝试在我的代码中尽可能地防御,而无需进行不必要的检查。代码如下:splitString[]

String[] parts = myString.split("\\w");  

在使用拆分后之前,我需要执行空值检查吗?parts


答案 1

它从不返回 null。如果您不确定,应始终检查该方法的javadoc。例如 String#split(String)

此方法的工作方式就像调用双参数方法一样split

...和 String#split(String,int) 说:

如果表达式与输入的任何部分都不匹配,则生成的数组只有一个元素,即此字符串。

从Javadoc中,您还可以了解可能发生的异常类型,更重要的是,为什么会引发这些异常。另外一件非常重要的事情是要检查的一件事是这些类是否是线程安全的。


答案 2

我建议您在API不清楚的时候下载Java源代码。这里的所有答案都只是告诉你答案,但你应该自己看看。您可以从此处下载 Java 源代码(查看页面底部附近)。

通过遵循源代码,您将最终到达 。返回值来自调用的非空值。 不返回 null:如果列表为空,您将获得一个空数组。String[] Pattern.split(CharSequence input, int limit)ArrayListtoArraytoArray

所以最后,不,你不必检查空值。