String的split()方法是常用的方法,但是却存在着很多的细节问题,尤其是要处理空的字符串时更需注意:

该方法有两个重载方法:split(String regex)和split(String regex,int limit);

下面给出几个具体的例子进行说明,这几个例子都是在main方法中执行的代码:

String str = ",a,a,a,,,";

String[] strArr = str.split(",");

System.out.println("strArr数组的长度为:"+strArr.length);

for(int i= 0;i<strArr.length;i++){

System.out.println(strArr[i]);

}

输出的结果为:

strArr数组的长度为:4

a

a

a

可见在输出结果中是把第一个逗号的前面也被当成一个空的字符串来处理了,然后后面的几个逗号所代表的空的字符串被忽略掉了,所以一,如果正则表达式的参数的两端部位如果为空字符串则也被拆成一个字符串二,在尾部拆分出来的空字符串将被忽略掉

String str = ",a,a,a,,,";

String[] strArr = str.split(",",2);

System.out.println("strArr数组的长度为:"+strArr.length);

for(int i= 0;i<strArr.length;i++){

System.out.println(strArr[i]);

}

输出结果为:

strArr数组的长度为:2

a,a,a,,,

可以看出函数把字符串分成了两部分,一个是一个空字符串另外是第一个逗号后面的部分"a,a,a,,,",如果增大limit的数值:

String str = ",a,a,a,,,";

String[] strArr = str.split(",",8);

System.out.println("strArr数组的长度为:"+strArr.length);

for(int i= 0;i<strArr.length;i++){

System.out.println(strArr[i]);

}

结果:

strArr数组的长度为:7

a

a

a

所以如果是带有limit参数并且足够大的话,将认为最后一个逗号的后面由一个空的字符串

String str = ",a,a,a,,,";

String[] strArr = str.split(",",0);

System.out.println("strArr数组的长度为:"+strArr.length);

for(int i= 0;i<strArr.length;i++){

System.out.println(strArr[i]);

}

结果:

strArr数组的长度为:4

a

a

a

如果limit参数为0,将丢弃后面的所有空字符串元素,但是可以把要拆分的字符串一最大的长度来分解,即不受到limit为正数的时候一样的限制,那么如果改为limit为负值有会怎么样呢?

String str = ",a,a,a,,,";

String[] strArr = str.split(",",-1);

System.out.println("strArr数组的长度为:"+strArr.length);

for(int i= 0;i<strArr.length;i++)

System.out.println(strArr[i]);

}

结果:

strArr数组的长度为:7

a

a

a

结果中又把最后的几个空的字符串加入到了strArr数组中

String split()相关推荐

  1. Java String.split()用法小结

    2019独角兽企业重金招聘Python工程师标准>>> 在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: ...

  2. 注意String.Split的几个重载形式

    String.Split应该是经常用到的一个函数了,经常的有下面两种形式        public string[] Split(char[] separator, StringSplitOptio ...

  3. java诡异的String.split()方法

    Reference https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String) 正文 ...

  4. Java String split 使用详解、split 方法存在的一些坑

    String 方法的split 其实是很有学问的,他有很多的特殊情况.我们来梳理一下: 备注:limit 是 split(String regex, int limit ) 方法的第二个参数,&quo ...

  5. String.Split()函数

    转自:http://blog.csdn.net/zhvsby/article/details/3404721 C#中使用string.Split方法来分割字符串的注意事项: string.Split给 ...

  6. Java在使用时需要注意那些问题_java使用String.split方法时要注意的问题

    在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果. 我们看jdk doc中说明 public String[] split(String rege ...

  7. Java 分割字符串的方法String.split()底层原理

    文章目录 1.举例说明 2.split源码分析 3.API原解 4.regex参数API原解 5.limit参数介绍 6.结果的验证 7.此方法的使用 1.举例说明 (例子来自于博主:https:// ...

  8. java string()函数_转载java String.split()函数的用法详解

    转载java String.split()函数的用法详解 如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!在java.lang包中有String.split()方法的原型是: p ...

  9. String.split()方法你可能不知道的一面

    String.split()方法你可能不知道的一面 一.问题 java中String的split()是我们经常使用的方法,用来按照特定字符分割字符串,那么我们看以下一段代码: public void ...

  10. Java String.split() 特殊字符处理

    前言 jdk 1.8 split函数 注意,split函数的参数是正则表达式.split函数的定义为: /*** Splits this string around matches of the gi ...

最新文章

  1. easyui datagrid 自定义加载按钮实例
  2. python少儿编程 在线课程-石家庄Python人工智能编程
  3. NTU 笔记 6422quiz 复习(1~3节)
  4. Linux版本之挑选适合服务器的OS发行版
  5. python中scrapy是什么_python中Scrapy数据流是什么
  6. 区间DP之环形石子合并
  7. 主角把异能开发计算机,高等数学上下
  8. 前端特效 - 前置- - 01. 百叶窗
  9. 因创新而更美,永洪科技获大数据产业创新百强
  10. Linux下如何聊天-irc,MSN,ICQ,QQ你会用了吗?
  11. IOB, BIO, BIOES
  12. PS 图像调整算法——饱和度调整
  13. 修改火狐浏览器滚动条样式
  14. Java代码生成图片验证码实现
  15. 内部总线(双向数据总线)
  16. VS2015“有太多的错误导致IntelliSense引擎无法正常工作,其中有些错误无法在编辑器”
  17. 2018互联网金融公司排名——Top100(附完整榜单)
  18. Empire简介及安装
  19. 移动小人Python程序
  20. Git - Smart Checkout、Force Checkout 区别

热门文章

  1. 资源福利网站「迅雷小站」-资源多无广告!
  2. ExtJs6 loader 引入html页面不执行页面内js的解决办法
  3. 科视Christie HS系列激光投影机为江苏园博园的夜晚增添亮丽风景线
  4. 混合线性模型学习笔记1
  5. 计算机文化基础形考4实操,(精华版)国家开放大学电大专科《计算机文化基础》网络课形考任务4作业及答案(2页)-原创力文档...
  6. CentOS Linux release 7.7-安装搜狗输入法、Pycharm无法输入中文解决
  7. Window打开服务的DOS命令
  8. 天津工业大学计算机学院教务处,天津工业大学教务管理系统入口http://jwc.tjpu.edu.cn/...
  9. Mac 编译运行ET6.0Demo
  10. SonicwALL NSA-4600 防火墙基本介绍