在Java中拆分空字符串似乎违反了文档,因为没有丢弃尾随的空字符串

时间:2017-03-19 16:26:37

标签: java regex string

System.out.println(",".split(",", 0).length);
System.out.println("".split(",", 0).length);

打印:

  

0
  1

这看起来很奇怪。根据{{​​3}}的文档,

  

如果n为零,那么模式将被应用尽可能多次,数组可以具有任何长度,尾随空字符串将被丢弃

在第二种情况下,当拆分空字符串时,此规则似乎被忽略。这是预期的行为吗?

1 个答案:

答案 0 :(得分:4)

来自docs

  

如果表达式与输入的任何部分都不匹配,那么   {% static i.photo_link %}

resulting array has just one element, namely this string表示它与此类似

"".split(",", 0).length

字符串 System.out.println(new String[]{""}.length); 中没有,,因此数组包含单个元素""一个空字符串,导致数组长度为""

另一个例子

1