今天写了个代码。分割的方法。发现分割完之后。最后面的空字符没了。故去看了源码。解决了下。记录一下。
String s1 = "1,,2,,";
String [] ss = s1.split(",");
System.out.println("length:"+ss.length);
for(int i =0;i< ss.length;i++){
System.out.println(ss[i]);
}
输出:
length:3
1
2
看看string源码发现,split方法调用的是
split(String regex, int limit)
看了源码,发现,如果limit传0的话,就会将split的结果。最后面的空字符串删除掉,下图。这一行删除的。
所以正确的调用方式是
String s1 = "1,,2,,";
String [] ss = s1.split(",",s1.length());
System.out.println("length:"+ss.length);
for(int i =0;i< ss.length;i++){
System.out.println(ss[i]);
}
length:5
1
2