一、基本用法
Java語言中的String類提供了split方法,可以將字符串按照指定的分隔符將其拆分成多個子字符串,返回一個字符串數組。
split方法有兩個重載版本:
public String[] split(String regex)
public String[] split(String regex, int limit)
其中,第一個參數regex是用於匹配分隔符的正則表達式,第二個參數limit是分割出的子字符串的最大數量。如果limit為0或負數,則表示不限制數量。
下面是一個基本的示例:
String str = "Java is cool";
String[] words = str.split(" ");
for (String word : words) {
System.out.println(word);
}
此代碼將輸出:
Java
is
cool
二、特殊字符
在使用split方法時,需要注意分隔符的特殊字符需要進行轉義。下面是一些特殊字符及其轉義方式:
特殊字符 | 轉義方式 |
---|---|
. | \. |
\ | \\ |
* | \* |
? | \? |
+ | \+ |
例如,以下代碼將把字符串按照句號(.)分割成多個子字符串:
String str = "This is a sentence. It has two parts.";
String[] parts = str.split("\\.");
for (String part : parts) {
System.out.println(part);
}
此代碼將輸出:
This is a sentence
It has two parts
三、分割數量限制
split方法的第二個參數limit可以限制分割出的子字符串的數量。例如,以下代碼將把字符串按照逗號(,)分割成至多3個子字符串:
String str = "one,two,three,four,five";
String[] parts = str.split(",", 3);
for (String part : parts) {
System.out.println(part);
}
此代碼將輸出:
one
two
three,four,five
四、空白分割
如果要將字符串按照空白字符分割,可以使用正則表達式”\s+”。例如,以下代碼將把字符串按照空格(包括製表符和換行符)分割成多個子字符串:
String str = " Java is cool.\t\nPython is awesome. \n";
String[] words = str.split("\\s+");
for (String word : words) {
System.out.println(word);
}
此代碼將輸出:
Java
is
cool.
Python
is
awesome.
五、分割CSV文件
CSV(Comma Separated Values,逗號分隔值)格式是一種常見的用於存儲和傳輸數據的格式。為了按照逗號分割CSV文件,需要使用正則表達式”,(?=([^\\\”]*\\\”[^\\\”]*\\\”)*[^\\\”]*$)”進行匹配。這個正則表達式的含義是:查找逗號後面的內容,但是跳過位於引號內部的逗號。
以下代碼演示了如何按照逗號拆分CSV文件:
String csv = "name, age, \"address, city\", email\n"
+ "Alice, 25, \"123 Main St, Anytown USA\", alice@example.com\n"
+ "Bob, 30, \"456 High St, Somewhere CA\", bob@example.com\n";
String[] lines = csv.split("\\r?\\n");
for (String line : lines) {
String[] fields = line.split(",(?=([^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)");
for (String field : fields) {
System.out.print(field + "\t");
}
System.out.println();
}
此代碼將輸出:
name age address, city email
Alice 25 123 Main St, Anytown USA alice@example.com
Bob 30 456 High St, Somewhere CA bob@example.com
六、結語
split方法是Java中非常常用的字符串處理方法之一。對於掌握這個方法,可以讓我們在實際開發中更加高效地進行字符串處理。
原創文章,作者:VRTD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/135894.html