java split 顺序_Java的split方法说明
相信大家都经常使用String 的split方法,但是大家有没有遇到下面的这种情况:
大家想想下面的代码执行结果是什么
public static voidmain(String[] args) {//TODO Auto-generated method stub
String str1= "a,b,c,,,a";
String str2= "a,b,c,,,";
String str3= "a,b,c, , ,";
String[] s1= str1.split(",");
String[] s2= str2.split(",");
String[] s3= str3.split(",");
System.out.println("str1长度:"+s1.length);
System.out.println("str2长度:"+s2.length);
System.out.println("str3长度:"+s3.length);
}
执行结果:
为什么会出现这样的结果呢,查找API发现了解决方法
解决方法:
通过查看API我们发现我们常用的split方法默认传递的是0,现在解决str2输出空的解决方法是传递的第二个参数为负数,即可
public static voidmain(String[] args) {//TODO Auto-generated method stub
String str1= "a,b,c,,,a";
String str2= "a,b,c,,,";
String str3= "a,b,c, , ,";
String[] s1= str1.split(",");
String[] s2= str2.split(",",-1);
String[] s3= str3.split(",",-1);
System.out.println("str1长度:"+s1.length);
System.out.println("str2长度:"+s2.length);
System.out.println("str3长度:"+s3.length);
}
经查找API发现在String类中,存在两个split重载方法
1.public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。
例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:
Regex结果
:
{ "boo", "and", "foo" }
o
{ "b", "", ":and:f" }
参数:regex - 定界正则表达式返回:字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的抛出:
2.public String[] split(String regex,int limit)
根据匹配给定的正则表达式来拆分此字符串。
此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。
limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果:
RegexLimit结果
:
2
{ "boo", "and:foo" }
:
5
{ "boo", "and", "foo" }
:
-2
{ "boo", "and", "foo" }
o
5
{ "b", "", ":and:f", "", "" }
o
-2
{ "b", "", ":and:f", "", "" }
o
0
{ "b", "", ":and:f" }
调用此方法的 str.split(regex, n) 形式与以下表达式产生的结果完全相同:
参数:regex - 定界正则表达式limit - 结果阈值,如上所述返回:字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的抛出:
java split 顺序_Java的split方法说明相关推荐
- java addall 顺序_Java LinkedList addAll()方法
Java LinkedList addAll()方法 java.util.LinkedList.addAll(Collection extends E> c) 方法用于将指定集合中的所有元素附加 ...
- java split 坑_java String split 踩坑记
split操作是出镜率非常高的一个方法, 但是我们使用中通常会使用两个类提供的split方法, 他们在入参类型一样, 但是效果却有一些差别, 稍不注意容易踩坑. java.lang.String#sp ...
- java split 特殊字符_Java中split()分割字符串时对特殊符号的处理
String类型的对象在用split()方法进行字符分割的时候常常会遇到用特殊字符进行分割的情况.由于split()是用正则实现的分割,所以当遇到一些特殊字符时,就需要使用一些特殊处理.以下是对一些常 ...
- java split函数的用法,java拆分字符串_java中split拆分字符串函数用法
摘要 腾兴网为您分享:java中split拆分字符串函数用法,中信期货,掌上电力,星球联盟,淘集集等软件知识,以及韩剧精灵,每日英语听力vip,龙卷风收音机,优衣库,中国平煤神马集团协同办公系统,光晕 ...
- java secretkey用法_Java SecretKeyFactory.generateSecret方法代码示例
本文整理汇总了Java中javax.crypto.SecretKeyFactory.generateSecret方法的典型用法代码示例.如果您正苦于以下问题:Java SecretKeyFactory ...
- java io顺序_Java顺序IO性能
java io顺序 许多应用程序将一系列事件记录到基于文件的存储中,以供以后使用. 从日志记录和审核,直到在事件源设计或其紧密相关的CQRS中保留事务重做日志,这都可以是任何东西. Java具有多种方 ...
- java set 包含_Java Set.contains()方法:判断Set集合是否包含指定的对象
Java 集合类中的 Set.contains() 方法判断 Set 集合是否包含指定的对象.该方法返回值为 boolean 类型,如果 Set 集合包含指定的对象,则返回 true,否则返回 fal ...
- java 发送邮件 菜鸟_Java发送邮件的方法
1.需要的jar包 2.具体实现方法 1.设置邮箱主机.需要认证.邮箱协议 Properties pro=new Properties(); pro.setProperty("mail.ho ...
- java 虚函数_Java的虚方法
虚方法出现在Java的多态特性中, 父类与子类之间的多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding).在Java中,子类 ...
最新文章
- 2017-2-23 C#基础 中间变量
- Web离线应用解决方案——ServiceWorker
- 《斗罗大陆》引入阿里云云原生数据库 PolarDB 游戏体验更流畅
- java 面试题三十二 mysql查询面试题
- Python3实现快速排序 通俗易懂
- SSM框架的搭建学习(1)---MyBatis的环境搭建
- LeetCode 46. 全排列(回溯)
- C / C++ 经典代码和常考类型
- springboot controller 访问 404
- [hadoop新实战4]hadoop完全分布式安装序列(支持ubuntu和redhat)
- Android 自定义相机
- DHTML Scriptlets 容器对象参考手册
- tensorflow——deeplabv3+训练cityscapes数据集(未完待续)
- BZOJ 5106 [CodePlus2017]汀博尔
- matlab阅读怎么放大镜,matlab局部放大
- windows系统安全加固
- 八大地图API开发平台大比拼
- ubuntu(17):ubuntu下wps缺失字体百度网盘永久链接与安装方法
- c语言发票的编码,增值税普通发票(折叠票)的发票代码有几位?
- 百度地图-设置地图最小、最大级别
热门文章
- [c语言]——跳水比赛
- 基于组件的业务模型---实现框架
- 初步学习C#网络编程
- 手把手教你简易上手GitHub(教程)
- 开展网络口碑传播应该注意哪些方面?
- 《JavaScript高级程序设计》(第4版)阅读笔记(二十五)
- 跟李宁老师学Python视频课程(15):Python TCP与UDP编程-李宁-专题视频课程
- 识别图片上文字的软件
- springboot整合shiro,mybatis-plus实现用户角色,权限管控.(完整demo)
- java list 时间排序吗_java中的list时间排序