java split(regex)和split(regex, limit)方法的使用技巧

在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


ss.split(regex, limit)這個方法返回的數組長度最多爲limit

比如:代碼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,後面空不會被去掉


這樣是不是兩個方法的區別就非常明顯了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章