项目中有次用到了String.split()方法,参数除了要传根据","、";"等分割字符串外,还可以再传一个数字,好奇就看了下,这里简单记录下:
public static void main(String[] args) {
//正常前端传入的数据
String str="name,age,sex";
//不传限定次数参数
System.out.println(Arrays.asList(str.split(",")));
//限定次数传0
System.out.println(Arrays.asList(str.split(",",0)));
//限定次数传-1
System.out.println(Arrays.asList(str.split(",",-1)));
}
上述三种情况的运行结果上分别是:
[name, age, sex]
[name, age, sex]
[name, age, sex]
可见没有区别;现在我们再尝试下特殊的字符串试试
public static void main(String[] args) {
//正常前端传入的数据
String str="name,age,sex,,,";
//不传限定次数参数
System.out.println(Arrays.asList(str.split(",")));
//限定次数传0
System.out.println(Arrays.asList(str.split(",",0)));
//限定次数传-1
System.out.println(Arrays.asList(str.split(",",-1)));
}
运行结果如下:
[name, age, sex]
[name, age, sex]
[name, age, sex, , , ]
可见,正常使用过程中,我们不传参数【limit】也没关系,只针对特殊情况,比如字符串后面手误多加了逗号,但没实际数据时,传【limit=-1】参数会把所有的逗号分隔开,不传or传0会忽略空字符串(不传方法会默认是0);