字符串 split()
方法的语法为:
string.split(String regex, int limit)
在这里, 字符串是String
类的对象。
split()参数
字符串 split()
方法可以采用两个参数:
- regex- 字符串在此regex处分割(可以是字符串)
- 限制 (可选)-控制生成的子字符串的数量
如果未传递limit
参数,则split()
返回所有可能的子字符串。
split()返回值
- 返回子字符串数组
注意:如果传递给split()
的正则表达式无效,则split()
方法将引发PatternSyntaxExpression
异常。
示例1:split()无限制参数
// importing Arrays to convert array to string
// used for printing arrays
import java.util.Arrays;
class Main {
public static void main(String[] args) {
String vowels = "a::b::c::d:e";
// splitting the string at "::"
// storing the result in an array of strings
String[] result = vowels.split("::");
// converting array to string and printing it
System.out.println("result = " + Arrays.toString(result));
}
}
输出
result = [a, b, c, d:e]
在这里,我们在::
处分割字符串 。由于未传递limit
参数,因此返回的数组包含所有子字符串。
带限制参数的split()
- 如果
limit
参数为0或负数,则split()
返回包含所有子字符串的数组。 - 如果
limit
参数为正(假设为n
),则split()
返回n
个子字符串的最大值。
示例2:带限制参数的split()
// importing Arrays to convert array to string
import java.util.Arrays;
class Main {
public static void main(String[] args) {
String vowels = "a:bc:de:fg:h";
// splitting array at ":"
// limit is -2; array contins all substrings
String[] result = vowels.split(":", -2);
System.out.println("result when limit is -2 = " + Arrays.toString(result));
// limit is 0; array contains all substrings
result = vowels.split(":", 0);
System.out.println("result when limit is 0 = " + Arrays.toString(result));
// limit is 2; array contains a maximum of 2 substrings
result = vowels.split(":", 2);
System.out.println("result when limit is 2 = " + Arrays.toString(result));
// limit is 4; array contains a maximum of 4 substrings
result = vowels.split(":", 4);
System.out.println("result when limit is 4 = " + Arrays.toString(result));
// limit is 10; array contains a maximum of 10 substrings
result = vowels.split(":", 10);
System.out.println("result when limit is 10 = " + Arrays.toString(result));
}
}
输出
result when limit is -2 = [a, bc, de, fg, h]
result when limit is 0 = [a, bc, de, fg, h]
result when limit is 2 = [a, bc:de:fg:h]
result when limit is 4 = [a, bc, de, fg:h]
result when limit is 10 = [a, bc, de, fg, h]
注意: split()方法将正则表达式作为第一个参数。如果需要使用特殊字符,例如: \
, |
, ^
, *
, +
等,您需要转义这些字符。例如,我们需要使用\\+
在+
处进行拆分。
示例3:+ 字符处的split()
// importing Arrays to convert array to string
// used for printing arrays
import java.util.Arrays;
class Main {
public static void main(String[] args) {
String vowels = "a+e+f";
// splitting the string at "+"
String[] result = vowels.split("\\+");
// converting array to string and printing it
System.out.println("result = " + Arrays.toString(result));
}
}
输出
result = [a, e, f]
在这里,要在+
处分割字符串 ,我们使用了\\+
。这是因为+
是一个特殊字符 (在正则表达式中具有特殊含义)。