String类的split方法可以将字符串按照特定的分隔符拆分成字符串数组。
String[] split(String regex)
参数regex为正则表达式,以regex所表示的字符串为分隔符,将字符串拆分成字符串数组。
1、逗号分隔字符串成数组:
public static void main (String[] args) throws ParseException {
String str1 = "A,B,C,D";
String[] arr1 = str1.split(",");
System.out.println(Arrays.toString(arr1));
}
输出结果:
[A, B, C, D]
2、分隔字符串时,结尾的空字符串会被舍弃,见下图中的字符串str3,长度为3。
此时易出现arr3[3]操作,导致出现异常(ArrayIndexOutOfBoundsException)。
public static void main (String[] args) throws ParseException {
public static void main (String[] args) throws ParseException {
String str1 = "A,B,C,D";//正常字符串
String str2 = "A,B,,D"; //字符串中间少值
String str3 = "A,B,C,"; //字符串后面少值
String[] arr1 = str1.split(",");
String[] arr2 = str2.split(",");
String[] arr3 = str3.split(",");
System.out.println("数组arr1:"+Arrays.toString(arr1) + "数组长度:" + arr1.length);
System.out.println("数组arr2:"+Arrays.toString(arr2) + "数组长度:" + arr2.length);
System.out.println("数组arr3:"+Arrays.toString(arr3) + "数组长度:" + arr3.length);
}
输出结果:
数组arr1:[A, B, C, D] 数组长度:4
数组arr2:[A, B, , D] 数组长度:4
数组arr3:[A, B, C] 数组长度:3
3、为了防止(2)中出现的异常,split方法可以自己指定数组长度,以空白填充。
String[] split(String regex, int limit)
public static void main (String[] args) throws ParseException {
String str1 = "A,B,C,D";//正常字符串
String str2 = "A,B,,D"; //字符串中间少值
String str3 = "A,B,C,"; //字符串后面少值
String[] arr1 = str1.split(",", 4);
String[] arr2 = str2.split(",", 4);
String[] arr3 = str3.split(",", 4);
System.out.println("数组arr1:" + Arrays.toString(arr1) + " 数组长度:" + arr1.length);
System.out.println("数组arr2:" + Arrays.toString(arr2) + " 数组长度:" + arr2.length);
System.out.println("数组arr3:" + Arrays.toString(arr3) + " 数组长度:" + arr3.length);
}
输出结果:
数组arr1:[A, B, C, D] 数组长度:4
数组arr2:[A, B, , D] 数组长度:4
数组arr3:[A, B, C, ] 数组长度:4