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. 前端碎碎念 之 nextTick, setTimeout 以及 setImmediate 三者的执行顺序
  2. Linux 帧缓存 数据,linux--帧缓存技术
  3. ubuntu:通过封装验证码类库一步步安装php的gd扩展
  4. unity 弹出式菜单_Java Swing JMenu和JPopupMenu:菜单和弹出式菜单
  5. 数据结构与算法 | 计数排序
  6. 微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现
  7. python 读写文件 另存为_python读写文件(五)
  8. 什么是面向对象,为什么要面向对象
  9. 特斯拉、华为等竞争升级,国产芯片实现突破,自动驾驶过去这一年
  10. 又一款iPhone病毒来袭:针对中国用户
  11. 哈希查找 C语言版
  12. 冰点还原精灵免费版下载
  13. IAR for ARM介绍、下载、安装与注册
  14. 使用Viewpager Indicator实现图片无限轮播
  15. ARVR | 5大AR应用程序开发工具简介
  16. JAVA萌新入门学习经历
  17. 粒子群算法组卷_概率表示的二进制粒子群算法在组卷中的应用
  18. 程序员应该每天写代码
  19. pc端高德地图获取当前位置
  20. SSM毕设项目游泳馆管理系统851a0(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 港口应急广播系统方案
  2. PTES标准的渗透测试七个阶段
  3. Mac、win VLC播放器 快进的三个快捷键
  4. tiny4412开发板GPIO试验
  5. python十行代码实现文件去重,去除重复文件的脚本
  6. HTB Busqueda WriteUP
  7. 【机器学习】聚类分析与主成分分析(附例题源码)
  8. MOD16 蒸散发数据下载
  9. 【道德经】漫谈实体、对象、DTO及AutoMapper的使用
  10. mysql查询工资大于某个员工_一个SQL实现薪水大于所在部门平均薪水的员工