2013-04-25 49 views
3

正如标题解释查询当输入为空时String.split()的行为

有人可以请解释下面两个输出的行为。

"".split(",").length 

给出输出

1 

其中作为

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

给出输出

0 
+0

你应该抬起头来,看了你的javadoc问这个问题之前。 – 2013-04-25 13:52:26

+0

这是如何得到5 upvotes?没有做任何努力。 – 2013-04-25 13:58:50

+3

@SotiriosDelimanolis答案如何得到+15? ;-) – 2013-04-25 14:00:51

回答

17

在第一种情况中,原始的字符串被返回,因为分隔符是不找到。

API docs

如果表达式不匹配输入的任何部分,然后将得到的阵列仅具有一个元素,即此字符串。

+8

谁会猜到? javadoc有答案! – 2013-04-25 13:51:15

+1

@StephenC稍微公平一点,只有在['String.split(String regex,int limit)'](http://docs.oracle.com/javase/7/docs/api/java/ lang/String.html#split%28java.lang.String,%20int%29)变体。 – 2013-04-25 13:52:26

+0

@DuncanJones - 但我敢打赌'split(String正则表达式)'版本说“看另一个变种的细节”! – 2013-04-25 13:54:05

相关问题