String类的split方法,字符串分割成数组

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
  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值