String中的split(",")和split(",",-1)的区别
1、当字符串最后一位有值时,两者没有区别
2、当字符串最后一位或者N位是分隔符时,前者不会继续切分,而后者继续切分。即前者不保留null值,后者保留。
下面看例子:
public static void main(String[] args) {
String str="a,,b,c,,,";
String[] split1 = str.split(",");
System.out.println("str.split(\",\"):");
for(int i=0;i<split1.length;i++){
System.out.println(i+":"+split1[i]);
}
System.out.println("str.split(\",\", -1):");
String[] split2 = str.split(",", -1);
for(int i=0;i<split2.length;i++){
System.out.println(i+":"+split2[i]);
}
}
输出结果如下:
由str.split(",", -1)
分割后的字符串,即使字符串的最后为空,分割后也会保留;而由str.split(",")
分割字符串时,当缀在字符串后面为空时,分割后会被丢弃;当字符串的中间出现空的值时(在本例中就是a和b之间的值),两者的处理结果是一样的
这个就适用于:在批量向后台传参时,当前台的字段不是必填字段时,有时为空可能会导致分割后的参数不正确,此时使用
str.split(",", -1)
是一种解决方法