如何在 Java 中分割一個字串
Hassan Saeed
2021年12月25日
2020年9月19日
本教程討論如何在 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 中對任意給定的引數進行拆分。