java split函數結尾空字符串被丟棄的問題


參考: 
http://yinny.iteye.com/blog/1750210 
http://www.xuebuyuan.com/1692988.html

java中的split函數用於將字符串分割為字符數組是很方便的,但由於不是很熟悉,犯了錯誤

如下:

String strtest = “1,2,”; 
String arry[] = strtest.split(“,”); 
這樣得到的數組元素個數只是2兩個,為什么呢,最后一個”,”后沒有內容,它沒有作為空字符串成為第三個數組元素,結尾的空字符串被丟棄了! 
這個函數還有另一種重載方式 :public String [] split (String regex, int limit) 看下說明 
limit 參數控制模式應用的次數,因此影響所得數組的長度。如果該限制 n 大於 0,則模式將被最多應用 n - 1 次,數組的長度將不會大於 n ,而且數組的最后一項將包含所有超出最后匹配的定界符的輸入。如果 n 為非正,那么模式將被應用盡可能多的次數,而且數組可以是任何長度。如果 n 為 0,那么模式將被應用盡可能多的次數,數組可以是任何長度,並且結尾空字符串將被丟棄。

而對於函數 public String [] split (String regex) 
該方法的作用就是使用給定的表達式和限制參數 0 來調用兩參數 split方法。因此,所得數組中不包括結尾空字符串

所以如果不想讓結尾的空字符串被丟棄,那么應該這樣寫:

String strtest = “1,2,”; 
String arry[] = strtest.split(“,”, -1);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM