String.split()方法

java split函數的幾個問題java


首先來看問題,而後來看函數的定義,其實什麼都在函數定義裏面說明白了
 
1.正則表達式字符串問題
 
首先輸入的regex是一個正則表達式,而不是一個普通的字符串,因此致使不少在正則表達式裏面有特殊意義的好比 "." "|" "\" ,若是直接使用是不行的,另一個方面咱們輸入的regex是以字符串形式傳遞的,對有些字符必需要轉義,尤爲是"\",下面請看例子
 
String[] aa = "aaa|bbb|ccc".split("|");//wrong
String[] aa = "aaa|bbb|ccc".split("\\|"); //正則表達式

 
 String[] aa = "aaa*bbb*ccc".split("*");//wrong
 String[] aa = "aaa|bbb|ccc".split("\\*");數組


 String[] aa = "aaa*bbb*ccc".split(".");//wrong
 String[] aa = "aaa|bbb|ccc".split("\\.");函數


String[] aa = "aaa\\bbb\\bccc".split("\\");//wrong
String[] aa = "aaa\\bbb\\bccc".split("\\\\");
 
2.數組長度的問題
 
String a = "";
String[] b = a.split(",");
b.length爲 1;
*
String a = "c";
String[] b = a.split(",");
b.length爲 1;
**
String a = "c,,,";
String[] b = a.split(",");
b.length爲 1;
***
String a = "c,,c";
String[] b = a.split(",");
b.length爲 3;
****
String a = ",";
String[] b = a.split(",");
b.length爲 0;
 
其實只要添加一個參數便可,例如
 
String str = "abcdef,ghijk,lmno,pqrst,,,";       字符串

String[] array = str.split(",");
輸出:abcdef,ghijk,lmno,pqrst,

String str = "abcdef,ghijk,lmno,pqrst,,,";
String[] array = str.split(",",-1);
輸出:abcdef,ghijk,lmno,pqrst,,,,
 
public String [] split (String  regex, int limit) 
 最後一個參數limit是影響返回數組的長度的
it

相關文章
相關標籤/搜索