Java String split()方法在指定的正則表達(dá)式處分割字符串,并返回子字符串?dāng)?shù)組。
字符串split()方法的語法為:
string.split(String regex, int limit)
字符串split()方法可以采用兩個參數(shù):
regex - 字符串在此正則表達(dá)式處分割(可以是字符串)
limit (可選)-指定生成的子字符串的數(shù)量
如果未傳遞參數(shù)limit,則split()返回所有可能的子字符串。
返回子字符串?dāng)?shù)組。
注意:如果傳遞給的正則表達(dá)式split()無效,則split()方法拋出PatternSyntaxExpression異常。
//導(dǎo)入數(shù)組以將數(shù)組轉(zhuǎn)換為字符串 //用于打印數(shù)組 import java.util.Arrays; class Main { public static void main(String[] args) { String vowels = "a::b::c::d:e"; //在“ ::”處分割字符串 //將結(jié)果存儲在字符串?dāng)?shù)組中 String[] result = vowels.split("::"); //將數(shù)組轉(zhuǎn)換為字符串并打印 System.out.println("result = " + Arrays.toString(result)); } }
輸出結(jié)果
result = [a, b, c, d:e]
在這里,我們在 :: 處分割字符串。由于未傳遞參數(shù)limit,因此返回的數(shù)組包含所有子字符串。
如果limit參數(shù)為 0 或 負(fù)數(shù),則split()返回包含所有子字符串的數(shù)組。
如果limit參數(shù)為正(例如n),則split()返回子字符串的最大值n。
//導(dǎo)入數(shù)組,將數(shù)組轉(zhuǎn)換為字符串 import java.util.Arrays; class Main { public static void main(String[] args) { String vowels = "a:bc:de:fg:h"; // 在":"處分割字符串 // limit = -2; 數(shù)組包含所有子字符串 String[] result = vowels.split(":", -2); System.out.println("返回結(jié)果當(dāng)limit為 -2 = " + Arrays.toString(result)); // limit = 0; 數(shù)組包含所有子字符串 result = vowels.split(":", 0); System.out.println("返回結(jié)果當(dāng)limit為 0 = " + Arrays.toString(result)); // limit = 2; 數(shù)組最多包含2個子字符串 result = vowels.split(":", 2); System.out.println("返回結(jié)果當(dāng)limit為 2 = " + Arrays.toString(result)); // limit = 4;數(shù)組最多包含4個子字符串 result = vowels.split(":", 4); System.out.println("返回結(jié)果當(dāng)limit為 4 = " + Arrays.toString(result)); // limit = 10; 數(shù)組最多包含10個子字符串 result = vowels.split(":", 10); System.out.println("返回結(jié)果當(dāng)limit為 10 = " + Arrays.toString(result)); } }
輸出結(jié)果
返回結(jié)果當(dāng)limit為 -2 = [a, bc, de, fg, h] 返回結(jié)果當(dāng)limit為 0 = [a, bc, de, fg, h] 返回結(jié)果當(dāng)limit為 2 = [a, bc:de:fg:h] 返回結(jié)果當(dāng)limit為 4 = [a, bc, de, fg:h] 返回結(jié)果當(dāng)limit為 10 = [a, bc, de, fg, h]
注意:split()方法將正則表達(dá)式作為第一個參數(shù)。如果需要使用特殊字符,如 \、|、^、*、+ 等,則需要對這些字符進行轉(zhuǎn)義。例如,我們需要使用\\+ 來分割 +。
//導(dǎo)入數(shù)組以將數(shù)組轉(zhuǎn)換為字符串 //用于打印數(shù)組 import java.util.Arrays; class Main { public static void main(String[] args) { String vowels = "a+e+f"; //分割字符串在 "+" 處 String[] result = vowels.split("\\+"); //將數(shù)組轉(zhuǎn)換為字符串并打印 System.out.println("result = " + Arrays.toString(result)); } }
輸出結(jié)果
result = [a, e, f]
在這里,要在+處分割字符串,我們使用了\\+。 這是因為+是一個特殊字符(在正則表達(dá)式中具有特殊含義)。