[Java] 如何把字串切成一個字串陣列? (Using String Split Function)

以一個 CSV 的檔案來說,通常都會使用「逗點」來切將幾個欄位分開,而如果我們是使用 JAVA 來讀檔案,勢必一定要將這些欄位切成許多的字元陣列,來方便我們做後續的處理。在 JAVA 中,其實有很好的讀檔案機制,和相當多的字串函式,我們可以透過 JAVA 內建的字元函式,將字串切成字串陣列。

 

而使用的方式很簡單,只要呼叫字串的「Split」函式就可以了。而以下是一個範例。

String mustSplitString = "A, B, C, D, E,F, G, H";
String[] AfterSplit = mustSplitString.split(",");
for (int i = 0; i < AfterSplit.length; i++)
    System.out.println(AfterSplit[i]);

 

 

在使用了這個範例之後,我們可以得到以下的結果。

A
 B
 C
 D
 E
F
 G
 H

但是,有時我們並不需要處理這麼多的資料,比如說一個 CSV 檔案有七個欄位,但是我們只需要處理前五個欄位,那麼我們我們要怎麼做呢?其實「Split」函式也有幫你建好相關的機制,只要在第二個參加加上數字就好了,以下為另一個範例。

String mustSplitString = "A, B, C, D, E,F, G, H";
String[] AfterSplit = mustSplitString.split(",", 5);
for (int i = 0; i &lt; AfterSplit.length; i++)
    System.out.println(AfterSplit[i]);

 

 

這是上述程式碼的輸出結果,可以看得到 JAVA 已經將字串以「,」來切割,而沒切完的字串都會塞到最後一個字串陣列中。

A
 B
 C
 D
 E,F, G, H

 

這時又來另一個問題了,到底這個函式支不支援許多的分隔符號呢?其實可以的,不過要使用「正規表達式」,不過這個有點複雜,所以就不在這裡說了。但舉一個簡單的例子,如果我們要將「, ;」這個符號來當分隔符號,那麼我們可以怎麼做呢?也很簡單,看以下的程式碼。

String mustSplitString = "A,;B, C, D, E,F, G, H";
String[] AfterSplit = mustSplitString.split("[,;\\s]+");
for (int i = 0; i < AfterSplit.length; i++)
    System.out.println(AfterSplit[i]);

這是上述程式碼的輸出結果,可以看到字元切割的很漂亮囉!

A
B
C
D
E
F
G
H

About 張海芋

城市裡的小小迷僮工程師,喜歡用鍵盤記錄個人生活的點滴,身邊的人事物都我的靈感,用心踏出每個腳步,用文字灌溉《海芋小站》,用專業解決問題。

發表迴響