在java字符串方法中有一個非常好用的方法split(),該方法可以把字符串直接分割爲數組此方法有兩個重載。
一是:split(regex),參數爲要分隔的字符串或者正則表達式。
二是:ss.split(regex, limit)。此方法可以的第二個參數一般不太常用,
這兩個方法api給的解釋是:limit 參數控制模式應用的次數,因此影響所得數組的長度。如果該限制 n 大於 0,則模式將被最多應用 n - 1 次,數組的長度將不會大於 n,而且數組的最後一項將包含所有超出最後匹配的定界符的輸入。如果 n 爲非正,那麼模式將被應用儘可能多的次數,而且數組可以是任何長度。如果 n 爲 0,那麼模式將被應用儘可能多的次數,數組可以是任何長度,並且結尾空字符串將被丟棄。
兩個方法的區別是split(regex)返回變長的數組,就是可以分割爲多少項就返回多長的數組
比如:代碼1
String ss = ",,";
String sss[] = ss.split(",");
System.out.println(sss.length);//返回數組長度爲0,自動去除尾部爲空的字符串
代碼2
String ss = ",,3";
String sss[] = ss.split(",");
System.out.println(sss.length);//返回數組長度爲3,前面空不自動去除
代碼3
String ss = "1,2,";
String sss[] = ss.split(",");
System.out.println(sss.length);//返回數字長度3
比如:代碼1
String ss = "1,,";
String sss[] = ss.split(",",3);
System.out.println(sss.length);//返回數組長度3,不會自動去掉尾部
代碼2
String ss = "1,,5,6";
String sss[] = ss.split(",",3);
System.out.println(sss.length);//返回數組長度3,後面的5,6會被合併爲一項
代碼3
String ss = "1,";
String sss[] = ss.split(",",3);
System.out.println(sss.length);//返回長度爲2,後面空不會被去掉
這樣是不是兩個方法的區別就非常明顯了