今天用到split,然后突然犯蠢了
测试代码
String s="##2";
String f[]=s.split("#");
System.out.println(f[1]=="");
for(int i=0;i<f.length;i++)
System.out.print(f[i]+"-");
结果
然后我就死机了,明明是空为什么不等呢。试了null," "等等,都是false。百度了半天,没人犯这么低级的错误。。之后好像才想起来,要用equals()
理由:两个等号比较的是地址
String s="##2";
String f[]=s.split("#");
System.out.println(f[1].equals(""));
for(int i=0;i<f.length;i++)
System.out.print(f[i]+"-");
然后我又发现了个细节问题,split会默认删除末尾空项。
String s="###";
String f[]=s.split("#");
System.out.println(f.length);