String的split方法分割出“空串”探究
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