关于字符串的split方法的一些见解
2014-09-23 00:00
211 查看
摘要: Java String split
同事今天向笔者提了一个字符串分割的问题,相信许多新手甚至参加工作数年的老鸟会感到奇怪,废话少说直接上实例代码。。。
运行上面一段代码,在控制台可以得到以下输出:
此时,只想问下James Gosling,我的最后一个空字符串去哪了?
JDK的API上面对split方法有一段这样的描述:该方法调用的是split(regex, 0),而对split(regex, limit)的描述是:通过该方法返回的数组包含该字符串的每个子串,这些子串通过另一个指定的字符表达式或该字符串末尾终止。子串在数组中的顺序是它们在字符串中出现的顺序。如果表达式没有匹配输入字符串的任意部分,那么结果数组只有一个元素,及此字符串。limit参数控制模式被应用的次数,因此影响结果数组的长度。如果limit大于0,那么模式将最多被应用limit-1次,数组的长度不会大于limit,数组的最后一项将包含输入没有匹配的部分。如果limit是非正数,那么模式将尽可能的应用多次而数组会是任意长度。如果limit是0,尾随的空字符串会被丢弃。因此,如果你想要保留尾随的空串,第二个参数最好是负数。
将之前的代码修改为:
再次运行,得到如下结果:
同事今天向笔者提了一个字符串分割的问题,相信许多新手甚至参加工作数年的老鸟会感到奇怪,废话少说直接上实例代码。。。
String source = "1,2,,3,"; String[] strArr = source.split(","); for (String str : strArr) { System.out.println("[" + str + "]"); }
运行上面一段代码,在控制台可以得到以下输出:
[1] [2] [] [3]
此时,只想问下James Gosling,我的最后一个空字符串去哪了?
JDK的API上面对split方法有一段这样的描述:该方法调用的是split(regex, 0),而对split(regex, limit)的描述是:通过该方法返回的数组包含该字符串的每个子串,这些子串通过另一个指定的字符表达式或该字符串末尾终止。子串在数组中的顺序是它们在字符串中出现的顺序。如果表达式没有匹配输入字符串的任意部分,那么结果数组只有一个元素,及此字符串。limit参数控制模式被应用的次数,因此影响结果数组的长度。如果limit大于0,那么模式将最多被应用limit-1次,数组的长度不会大于limit,数组的最后一项将包含输入没有匹配的部分。如果limit是非正数,那么模式将尽可能的应用多次而数组会是任意长度。如果limit是0,尾随的空字符串会被丢弃。因此,如果你想要保留尾随的空串,第二个参数最好是负数。
将之前的代码修改为:
String source = "1,2,,3,"; String[] strArr = source.split(",", -1); for (String str : strArr) { System.out.println("[" + str + "]"); }
再次运行,得到如下结果:
[1] [2] [] [3]
[]
相关文章推荐
- android中关于jni调用java层方法的一些误导和见解
- 关于Java中split方法对空字符串处理问题
- C# 关于判断字符串为空的一些方法
- 关于Thread类中run()方法的一些见解
- 关于Java中split方法对空字符串处理问题
- php关于使用strpos方法判断字符串中是否存在字符串的一些细节说明
- 关于字符串,数组,对象的一些小方法
- C# 关于判断字符串为空的一些方法
- 转: 关于Java中split方法对空字符串处理问题
- 【Java面试题】17 如何把一个逗号分隔的字符串转换为数组? 关于String类中split方法的使用,超级详细!!!
- JAVA基础 - 关于String字符串的一些方法
- 关于TimerTask里面的scheduledExecutionTime()方法,一些见解
- 关于mysql根据特定字符来截取字符串的一些方法
- C# 关于判断字符串为空的一些方法
- 在JAVA中, 在使用String.split方法时要注意的一些特殊分隔字符串
- 一些关于字符串中存在特殊字符判断的方法
- C# 关于判断字符串为空的一些方法
- JS关于字符串和数组的一些使用方法
- 关于Google Trends中一些错误使用方法
- 关于实施MVC框架结构的WEB项目的一些见解(转)