public static void main(String[] args) {
//空字符串
String str = "";
//根据逗号分割返回数组的长度
System.out.println(str.split(",").length);
}
输出的结果跟自己脑海中想象的值完全不一样,这结果不应该是0吗?带着好奇心去看了一下split()方法的源码,如下图:
这就是问题所在的关键地了,当正则表达式匹配不到时,实际返回了一个数组,并且数组里面包含了当前的空字符串,所以就导致结果数组长度为1了
提前判断字符串是否为空,如果为空的话直接创建一个新字符串数组
String str = "";
String[] arr;
if (str.isEmpty()){
arr = new String[]{};
}else{
arr = str.split(",");
}