如何在 Java 中將字串拆分成陣列

Hassan Saeed 2023年1月30日 2020年10月27日
  1. Java 中使用 split(delimiter) 將字串拆分為陣列
  2. Java 中使用 split(regex, limit) 將字串拆分為一個陣列並保留尾部的空字串
如何在 Java 中將字串拆分成陣列

本教程討論了在 Java 中將字串分割為陣列的方法。

假設我們有一個逗號分隔的字串 John, 23, $4500。我們需要根據逗號拆分資料,並將其儲存在像這樣的陣列中:["John", '23', "$4500"]。這時 split() 方法就派上用場了。

Java 中使用 split(delimiter) 將字串拆分為陣列

我們需要傳遞定界符,根據定界符來分割字串。split() 方法會在每一個定界符出現時將字串拆分,並將每個值儲存在陣列中。下面的例子說明了這一點。

public class MyClass {
    public static void main(String args[]) {
        String data = "1,2,3,,5,6,,";
        String[] split = data.split(",");
        for (int i=0; i<split.length; i++)
            System.out.println(split[i]);
            
        System.out.println("Done");
        
    }
}

輸出:

1
2
3

5
6

雖然我們在最後有兩個空字串,但生成的陣列並不包含最後兩個空字串。這是因為 split() 的預設行為從結果陣列中刪除了所有尾部的空字串。

Java 中使用 split(regex, limit) 將字串拆分為一個陣列並保留尾部的空字串

我們可以通過向 split() 函式傳遞一個額外的引數來覆蓋這種行為:split(regex, limit)。傳遞一個負的 limit 將確保 regex 模式被儘可能多地應用,從而包括所有分割後的空字串。

下面的例子說明了這一點。

public class MyClass {
    public static void main(String args[]) {
        String data = "1,2,3,,5,6,,";
        String[] split = data.split(",", -1);
        for (int i=0; i<split.length; i++)
            System.out.println(split[i]);
            
        System.out.println("Done");
        
    }
}

輸出:

1
2
3

5
6


Done

我們可以看到,現在它已經列印了最後兩個尾部的空字串。

相關文章 - Java String