日期:2014-05-18  浏览次数:20814 次

如何判断用split得到分割符号数量?
String   nr= "a,s,se,我们,11,q ";
nra=nr.split( ", ");  
      if(nr.length()==5   ){这段代码;

}
else
{那段代码;
}
我的意思就是判断上面有5个逗号执行这段代码;反之执行那段代码;应该怎样才可以?

------解决方案--------------------
如果用length()好像需要减1。
可以使用indexOf()从左向右检索字串,每次定位后统计数加1,直到得到的结果为-1
------解决方案--------------------
if(nr.replaceAll([^,], " ").length == 5 ){
------解决方案--------------------
你写错了!

String nr= "a,s,se,我们,11,q ";
String nra[]=nr.split( ", "); //拆分成数组
if(nra.length()==5 ){这段代码;

}
else
{那段代码;
}

------解决方案--------------------
nra=nr.split( ", ");
if(nra.length()==5+1 ){
------解决方案--------------------
-------------------------------------------
1,分隔符是区分全角和半角拼写的,如:
String str = "a,b,c,d,e ";
String[] ctx = str.split( ", ");
for (String s : ctx){
System.out.println(s);
}
结果:
a
b
c,d
e
--------------------
2,如果分隔符在末尾,那么长度就不记末尾分隔符,如:
String str = "a,b,c,,d,e ";
length=6;
但:
String str = "a,b,c,d,e, ";
length=5;
String str = "a,b,c,d,e,,,, ";
length=5;

------解决方案--------------------
public static void main(String args[]) {
String nr = "a,s,se,我们,11 ";
String[] arrray = nr.split( ", ");
if (arrray.length == 5) {
System.out.println( "is 5 ");
} else {
System.out.println( "not 5 ");
}

}


lz注意分割符的全角和半角区分。
,和,是不同的。