天天看點

Java中String類的split()的用法

今天寫代碼時候用到了String類的split(),他的作用是将一個字元串分割為子字元串,然後将結果作為字元串數組傳回。

API上的關于這個方法的說明是:

根據比對給定的正規表達式來拆分此字元串。

此方法傳回的數組包含此字元串的每個子字元串,這些子字元串由另一個比對給定的表達式的子字元串終止或由字元串結束來終止。數組中的子字元串按它們在此字元串中的順序排列。如果表達式不比對輸入的任何部分,則結果數組隻具有一個元素,即此字元串。

limit 參數控制模式應用的次數,是以影響結果數組的長度。如果該限制 n 大于 0,則模式将被最多應用 n - 1 次,數組的長度将不會大于 n,而且數組的最後項将包含超出最後比對的定界符的所有輸入。如果 n 為非正,則模式将被應用盡可能多的次數,而且數組可以是任意長度。如果 n 為零,則模式将被應用盡可能多的次數,數組可有任何長度,并且結尾空字元串将被丢棄。

split 方法參數為stringObj.split([separator,[limit]])

stringObj(必選項) ,指要被分解的 String 對象或文字。該對象不會被 split 方法修改。

separator(可選項),指字元串或正規表達式對象,它辨別了分隔字元串時使用的是一個還是多個字元。如果忽略該選項,傳回包含整個字元串的單一進制素數組。

limit(可選項)該值用來限制傳回數組中的元素個數。

說明 :

split 方法的結果是一個字元串數組,在 stingObj 中每個出現 separator 的位置都要進行分解。

String類的split()方法的正确寫法:

1、如果用“.”作為分隔的話,必須是如下寫法:String.split("\."),這樣才能正确的分隔開,不能用String.split(".");。

2、如果用“|”作為分隔的話,必須是如下寫法:String.split("\|"),這樣才能正确的分隔開,不能用String.split("|");“.”和“|”都是轉義字元,必須得加"\";(這裡是利用了java中正規表達式的一個點)。

3、如果在一個字元串中有多個分隔符,可以用“|”作為連字元,比如:“a=1 and b =2 or c=3”,把三個都分隔出來,可以用String.split(“and|or”);

API中的例子,對于字元串 “boo:and:foo”,regex為o,limit為5時,splite方法首先去字元串裡查找regex——o,然後把o做為分隔符,逐個把o去掉并且把字元串分開,比如,發現b後面有一個o,于是把這個o去掉,并且把字元串拆成"b", “o:and:foo"兩個字元串(注意:b後面的兩個o已經去掉了一個),接下來看"o:and:foo"這個字元串,第一個字元就是o,于是o前面相當于一個空串,把這個o去掉,“o:and:foo"被分開成””, “:and:foo"這樣兩個字元串,以此類推循環5次就是splite(“o”, 5)方法的作用,我說得夠明白了吧?

其實這個方法一般這樣用:

String[] arr = “11,22,33,44”.splite(”,");

進而友善的得到一個字元串數組:arr={“11”, “22”, “33”, “44”};