Java String split()
方法用於根據提供的正規表示式將字串拆分為字串陣列。
有時需要在Java中拆分String,例如:拆分CSV檔案的資料以獲取所有不同的值。
String類提供了兩種拆分字串的方法。
1. public String[] split(String regex)方法
此方法用於根據給定的正規表示式字串拆分字串。整個字串被拆分並以字串陣列的形式返回。此方法是在Java 1.4中引入的。請注意,尾隨的空字串不包含在返回的字串陣列中。下面來看一個簡單的java字串拆分範例 -
String s = "abcaada";
System.out.println(Arrays.toString(s.split("a")));
上面的程式碼將產生輸出為:[,bc,,d]
。請注意,最後一個空字串將從返回的字串陣列中排除。
2. public String[] split(String regex, int limit)方法
當要將字串拆分為有限數量的字串時,可使用此java字串拆分方法。例如,假設有一個String變數,它包含逗號作為分隔符的名稱和地址。地址中可以包含逗號。下面給出了這個字串拆分的範例。
String s = "Haikou,Hainan,China";
String[] data = s.split(",", 2);
System.out.println("Name = "+data[0]); //Haikou
System.out.println("Address = "+data[1]); //Hainan,China
請注意,上面的第一種方法實際上通過limit
引數使用0
傳遞來使用第二種方法。
public String[] split(String regex) {
return split(regex, 0);
}
Java的字串分割要點
關於java String split()
方法的一些要點是:
limit
引數控制模式的應用次數,因此會影響結果陣列的長度。如果限制n
大於零,那麼模式將最多應用n-1
次,陣列的長度將不大於n
,並且陣列的最後一個條目將包含超出最後一個匹配分隔符的所有輸入。n
是非正數,那麼模式將被應用盡可能多的次數,並且陣列可以具有任何長度。n
為零,那麼模式將被應用盡可能多的次數,陣列可以具有任何長度,並且將丟棄尾隨的空字串。Java String拆分範例
以下是java String split()
方法的範例。
import java.util.Arrays;
public class JavaStringSplit {
/**
* Java String split example
*
* @param args
*/
public static void main(String[] args) {
String line = "Copyright of tw511.com at 2099";
String[] words = line.split(" ");
String[] twoWords = line.split(" ", 2);
System.out.println("String split with delimiter: " + Arrays.toString(words));
System.out.println("String split into two: " + Arrays.toString(twoWords));
// 用特殊字元分隔的拆分字串
String wordsWithNumbers = "I|am|a|java|developer";
String[] numbers = wordsWithNumbers.split("\\|");
System.out.println("String split with special character: " + Arrays.toString(numbers));
}
}
執行上面範例程式碼,得到以下結果 -
String split with delimiter: [Copyright, of, tw511.com, at, 2099]
String split into two: [Copyright, of tw511.com at 2099]
String split with special character: [I, am, a, java, developer]
可以使用反斜杠將java正規表示式特殊字元用作普通字元,就像上面的程式中使用了管道(|
)特殊字元一樣。