如何在 Java 中分割一個字串

Hassan Saeed 2021年12月25日 2020年9月19日
如何在 Java 中分割一個字串

本教程討論如何在 Java 中拆分/分割一個字串。

Java 中的 String 是非原始資料型別之一,用於儲存一個字元序列。我們可以簡單地宣告一個字串變數,如下所示。

String string = "I am a string";
String string1 = "I am another string";

我們可能需要執行幾個字串處理任務,這取決於我們要實現的目標。讓我們考慮一下這樣的情況:我們有一個以 CSV 格式表示資料的字串-全部用逗號分隔。

String data = "Apple,Banana,Orange,Peach"; 

我們希望從中得到所有的獨立字串;因此我們需要根據逗號對字串進行拆分,以分離資料,得到如下的輸出。

> Apple
> Banana
> Orange
> Peach

Java 字串預設情況下有一個拆分函式 String#split(),它接收一個正規表示式作為輸入,並在給定的輸入上拆分後返回一個結果字串陣列。

下面的例子說明了如何在 Java 中使用這個方法來拆分給定的字串。

public class Main {
    public static void main(String args[]) {
        String data = "Apple,Banana,Orange,Peach";
        String[] splitted = data.split(",");
        for (int i=0; i<splitted.length; i++){
            System.out.println(splitted[i]);
        }
    }
}

上面的程式碼輸出如下。

Apple
Banana
Orange
Peach

讓我們嘗試用這個方法在不同的引數上拆分一個字串。

. 作為分隔符

這次我們有一個這樣的字串 - "One.Two.Three.Four"。讓我們再次使用同樣的方法來拆分它。

public class Main {
    public static void main(String args[]) {
        String data = "One.Two.Three.Four";
        String[] splitted = data.split(".");
        for (int i=0; i<splitted.length; i++){
            System.out.println(splitted[i]);
        }
    }
}

上面的程式碼將什麼也不輸出! 請記住,我們提到過,split 函式需要一個正則表達模式作為輸入。因此,當我們要對一些特殊字元進行拆分時,我們需要採取額外的措施。

這裡有 12 個具有特殊含義的字元。

  • 反斜槓 \
  • 小括號 ^
  • 美元符號 $
  • 句點 .
  • 豎線或管道符號 |
  • 問號 ?
  • 星號 *
  • 加號 +
  • 左括號 (
  • 右括號 )
  • 左方括號 [
  • 左大括號 {

這些特殊字元通常被稱為元字元。

如果我們要對上述任何一個字元進行拆分,我們可以使用反斜槓 / 來轉義這些特殊字元,所以使用 data.split('\\.') 來代替 data.split('.')

public class Main {
    public static void main(String args[]) {
        String data = "One.Two.Three.Four";
        String[] splitted = data.split("\\.");
        for (int i=0; i<splitted.length; i++){
            System.out.println(splitted[i]);
        }
    }
}

現在上面的程式碼就能正確輸出了。

One
Two
Three
Four

讓我們再試一個例子。

以一個字串作為分隔符來拆分

這次我們有一個這樣的字串。"OneFruitTwoFruitThreeFruit". 我們再用同樣的方法,根據字串 Fruit 進行拆分。

public class Main {
    public static void main(String args[]) {
        String data = "OneFruitTwoFruitThreeFruit";
        String[] splitted = data.split("Fruit");
        for (int i=0; i<splitted.length; i++){
            System.out.println(splitted[i]);
        }
    }
}

上面的程式碼輸出。

One
Two
Three

現在我們知道了如何在 Java 中對任意給定的引數進行拆分。

相關文章 - Java String