论坛首页 Java企业应用论坛

Java中split函数字符串末尾的空格将被省略

浏览 3638 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-10  
split是分隔字符常用的方法,也是jdk里一个较新加入,并鼓励使用的分隔字符串方法,先查看jdk文档中的定义:

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},但是所得数组中不包括结尾空字符串,所以后面的空串被省略了。
   发表时间:2011-11-13  
如果你这么试试呢:
String[] resultStrings="8second8".split("8",-1); 
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics