split方法返回的数组的长度不会为0

前两天在公司写代码的时候犯了一个巨傻逼的错误,暴露了JAVA基础不够扎实的缺陷。事情是这样的:
我需要将获得到的string用split(",")方法将其分成数组。为了防止获得的string不能正确的被split,我对split后的数组进行了判断。大概如下:

1
2
3
4
String [] strArray = str.split(",");
if(strArray != null && strArray.length !=0){
do something here
}

后来发现,传来的str中有很多空字符串如: ''。但是str被split后,还是很顺利的进入了if的逻辑里面执行。

查java文档,发现split方法如果无法正确split一个字符串,会将字符串本身作为一个整体放进数组中。也就是说,split后的数组长度至少为1。
WTF,这种错误都能犯。我弱爆了。