Java 输入为空时String.split()的行为

Java 输入为空时String.split()的行为,java,string,split,Java,String,Split,正如标题解释的那样 有人能解释一下以下两种输出的行为吗 "".split(",").length 输出 1 0 何处为 ",".split(",").length 输出 1 0 在第一种情况下,返回原始字符串,因为找不到分隔符 从: 如果表达式与输入的任何部分都不匹配,则结果数组只有一个元素,即该字符串 将丢弃尾随的空字符串 尝试: 谁会猜到呢?javadoc有答案@StephenC说得稍微公平一点,这个评论只在变体中提到。@DuncanJones-但我敢打赌split(Strin

正如标题解释的那样

有人能解释一下以下两种输出的行为吗

"".split(",").length
输出

1
0
何处为

",".split(",").length
输出

1
0

在第一种情况下,返回原始字符串,因为找不到分隔符

从:

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

将丢弃尾随的空字符串

尝试:


谁会猜到呢?javadoc有答案@StephenC说得稍微公平一点,这个评论只在变体中提到。@DuncanJones-但我敢打赌
split(String regex)
version说“查看其他变体了解详细信息”<因此,代码>尾随的空字符串不包括在结果数组中。是
String#split(String)
方法的一部分。不公平。斯蒂芬是对的<代码>此方法的工作方式与调用双参数拆分方法类似@DuncanJones-True,尽管这是通过单参数方法的注释间接链接的:“这个方法的工作原理就像调用两个参数的拆分方法一样。”在你问这个问题之前,你应该查阅并阅读javadoc。这是如何获得5票的?没有做任何努力。@SotiriosDelimanolis答案是如何得到+15的?;-)@邓肯·琼斯有时很慷慨。