为什么String.split(regexp)为空字符串会导致String []的长度为1?

时间:2017-10-24 16:52:44

标签: java string split

有人可以解释这种行为:

"one,two,three".split(",").length == 3
"one,two".split(",").length == 2
"one".split(",").length == 1
"".split(",").length != 0 // eek!

2 个答案:

答案 0 :(得分:4)

来自javadoc:

  

如果表达式与输入的任何部分都不匹配,那么   结果数组只有一个元素,即这个字符串。

split(regex) -> split(regex, 0)所以请查看split(String regex, int limit)

答案 1 :(得分:3)

这种行为是一致的:

"one".split(",") // {"one"}
"".split(",") // {""}

空字符串""是一个类似于"one"的字符串,所以它的行为就像那个(或任何其他字符串)。