在处理有规律的字符串的时候.有些字符串分割需要注意了..
如下例子:
public class Split {
public static void main(String[] args) {
String str1 ="1,2,3,4,5";
String str2 ="1,2,3,4,";
String str3 ="1,,2,3,";
String str4=",,,,";
System.out.println(str1.split(",").length);
System.out.println(str2.split(",").length);
System.out.println(str3.split(",").length);
System.out.println(str4.split(",").length);
}
}
这样输出的结果是:
5
4
4
0
发现从最后开始,如果依次都是为空字符串的话,会被忽略掉的.
面对这样的问题,可以考虑使用StringTokenizer:(错误的方法)
String str4=",,,,";
StringTokenizer token4 = new StringTokenizer(str4,"," ,true);
System.out.println(token4.countTokens());
while(token4.hasMoreTokens()){
String s = token4.nextToken();
System.out.print(s.replace(",", ""));
}
纠正下,自己的错误.前面误导大家了,实在是不好意思
上面的这段只对str4有效.如果想把4个字符串都获取为5个长度的话,应该使用str3.split(",", -1);