String.split()用法

String.split()用法


先看下面代码
将以下字符串以 “,” 分割,生成数组长度目测很多人觉得是8,而实际结果为5

public static void main(String[] args) {
        String s = ",aa,bb,cc,dd,,,";
        String[] split = s.split(",");
        System.out.println("split长度 : "+split.length);
        for (String s1 : split) {
            System.out.println("s1 = " + s1);
        }
    }

在这里插入图片描述

为了探明原因,我们debug查看一下源码
可以看到开始的确分割出来8个
在这里插入图片描述

从其while循环语句可以看出,若list末尾为空字符串,resultSize–;
之后抛弃后面空字符串,返回新的数组
在这里插入图片描述


如下图可看出
regex : 是正则表达式的意思,也就是说这可根据给定正则表达式进行分割;

limit : 规定分割n-1次,它有三种情况:
在这里插入图片描述

  1. limit不传值或传0:不传时会自动定义其传0,则分割时会无限次数并去除字符串后的空字符串
    在这里插入图片描述
  2. 若limit传参为正整数n,则会进行n-1次分割:若n=1,进行0次分割,得到的将是原字符串
    在这里插入图片描述
    在这里插入图片描述
    3.若limit传参为负数,则执行切割到无限次,数组长度也可以是任何数值,结尾空字符串将不再被丢弃
    在这里插入图片描述
发布了12 篇原创文章 · 获赞 1 · 访问量 532

猜你喜欢

转载自blog.csdn.net/weixin_44635138/article/details/104356646