首頁 > 軟體

JAVA中split函數的常見用法範例

2022-07-18 22:05:43

只寫經常使用的,並不完整。

1.基本用法,將字串按照指定字串進行分割,例如:

public class Main {
    public static void main(String[] args) {
        String ss = "abcabcdefg";
        String[] split = ss.split("bc");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔後字串陣列長度為");
        System.out.println(split.length);
    }
}

輸出:

a
a
defg
分隔後字串陣列長度為
3

2.需要使用多個字元進行分割:使用split("[]"),其中[]裡面存放需要分割的字元,注意,現在是按照字元來分割,例如:

public class Main {
    public static void main(String[] args) {
        String ss = "abcabcdefg";
        String[] split = ss.split("[bc]");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔後字串陣列長度為");
        System.out.println(split.length);
    }
}

輸出:

a

a

defg
分隔後字串陣列長度為
5

原因是將b和c都當作分割的字元。

用法其實上面兩條差不多就可以了,重要的是一些特殊情況:

情況1:字串中有連續的分割符,例如2中,b也是分割符c也是分隔符,那麼在分割bc時會產生一個空字元(""),n個連續的分割符會產生n-1個空字元。下面是偵錯時的資訊:

可以看到中間產生了空字元。

情況2:分割符出現在首部,那麼出現幾個分割符,就有多少個空字元。例如

public class Main {
    public static void main(String[] args) {
        String ss = "aaabcabcdefg";
        String[] split = ss.split("[a]");
        for(String st:split){
            System.out.println(st);
        }
        System.out.println("分隔後字串陣列長度為");
        System.out.println(split.length);
    }
}

輸出:


bc
bcdefg
分隔後字串陣列長度為
5

前面3個a都是空字元。

情況3:有些正規表示式,這是一種特殊情況,如,*等符號需要新增跳脫字元。

解決方法:

針對出現空字元,可以寫一個遍歷,長度為0的過濾掉。

for(String st:split){
            if(st.length()>0){
                list.add(st);
            }
        }

針對跳脫字元,編譯器會報錯,就試試新增。

補充:Java中Split函數的用法技巧

在java.lang包中也有String.split()方法,與.net的類似,都是返回是一個字元型陣列,但使用過程中還有一些小技巧。

如執行:"2|33|4".split("|")

出來的結果是:

""

2

|

3

3

|

4

奇怪吧,不過注意看一下API說明還是知道原因的.

java.lang.string.split

split 方法

將一個字串分割為子字串,然後將結果作為字串陣列返回。

stringObj.split([separator,[limit]])

引數

  • stringObj
    必選項。要被分解的 String 物件或文字。該物件不會被 split 方法修改。
  • separator
    可選項。字串或 正規表示式物件,它標識了分隔字串時使用的是一個還是多個字元。如果忽略該選項,返回包含整個字串的單一元素陣列。
  • limit
    可選項。該值用來限制返回陣列中的元素個數。

說明

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

所以正常的寫法是這樣的:

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

2、如果用“|”作為分隔的話,必須是如下寫法:String.split("\|"),這樣才能正確的分隔開,不能用String.split("|");
“.”和“|”都是跳脫字元,必須得加"\";

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

總結

到此這篇關於JAVA中split函數的常見用法的文章就介紹到這了,更多相關Java split函數用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com