我的代码是:
String s = "1;;;; 23;;";
System.out.println(s.split(";").length);
并给出输出5
。
的源代码split
is:
public String[] split(String regex) {
return split(regex, 0);
}
文档说:
此方法的工作原理就像调用两个参数
split(java.lang.String,int) 方法,具有给定的表达式和
限制参数为零。因此尾随空字符串不是
包含在结果数组中。
例如,字符串“boo:and:foo”会产生以下结果
用这些表达式:
Regex Result
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }
如果我打印我有的字符串:
1
23
我不应该从中得到1;;;; 23;;
就像是{"1", "", "", "", " 23", ""}
?
不,五个是正确的,正如您引用的文档所述:
因此,尾随空字符串不包含在结果中
大批。
这就是省略数组末尾的空字符串的原因。如果您想要空字符串,请按照 Evgeniy Dorofeev 的回答所述并指定限制为 -1。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)