String的split方法分割出“空串”探究
2011-03-10 11:26
691 查看
split是分隔字符常用的方法,也是jdk里一个较新加入,并鼓励使用的分隔字符串方法,先查看jdk文档中的定义:
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。
例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果: Regex结果
: —— { "boo", "and", "foo" }
o —— { "b", "", ":and:f" }。
请注意红色字体部分,和使用‘o’分割后的结果:
前面的两个'o'导致分割出了空串,最后两个‘o’并没有分割出空串,而是直接省掉了。
我自己写了一个简单的程序来验证:
结果如下:
如果按照常理,结果length应该是3,最后还有一个{empty},但是所得数组中不包括结尾空字符串,所以后面的空串被省略了。
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。
例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果: Regex结果
: —— { "boo", "and", "foo" }
o —— { "b", "", ":and:f" }。
请注意红色字体部分,和使用‘o’分割后的结果:
前面的两个'o'导致分割出了空串,最后两个‘o’并没有分割出空串,而是直接省掉了。
我自己写了一个简单的程序来验证:
String[] resultStrings="8second8".split("8"); System.out.println("result length is:"+resultStrings.length); for (String string : resultStrings) { if (string.isEmpty()) System.out.println("{empty}"); else System.out.println(string);
结果如下:
result length is:2 {empty} second
如果按照常理,结果length应该是3,最后还有一个{empty},但是所得数组中不包括结尾空字符串,所以后面的空串被省略了。
相关文章推荐
- java String 的split方法对“.”分割无效的原因及解决
- String.split方法对"."分割的处理
- 不依赖java的:String.split方法分割字符串
- String.split()分割字符串方法
- 字符串分割的时候用StringUtils.split()方法代替string自带的split,特殊字符不用转义
- String 的 split(String regex, int limit) 方法 次数,空串
- string.split()不能按小数点(.)分割的解决方法
- 字符串分割-Java中的String.split()方法
- Java中分割字符串的方法--String.split()
- 分享一个 Java String split 快速分割的方法
- string.Split方法来分割字符串的注意事项:
- 一个比String.split分割速度更快的分割方法
- 用String.split方法时要注意的问题
- c#中Split等分割字符串的几种方法(转)
- String的split()方法的两种使用方式
- string对象的insert,replace,earse,变成空串的方法
- String.split()方法你可能不知道的一面
- java中String对象的split方法不能得到空字符串的问题
- String.split()分割字符串
- Split命令分割分区的方法