字符串拆分方法行为

Sru*_*lla 5 java string split

我不明白为什么以下输出有意义.

空字符串上的字符串拆分方法返回长度为1的字符串数组

String[] split = "".split(",");
System.out.println(split.length);
返回长度为1的String数组

String[] split = "Java".split(",");
System.out.println(split.length);
返回长度为1的String数组

如何区分?

Sim*_*ser 10

文档:

此方法返回的数组包含此字符串的每个子字符串,该子字符串由与给定表达式匹配的另一个子字符串终止,或者由字符串的结尾终止.

要回答你的问题,它会做预期的事情:返回的子字符串由输入字符串的结尾终止(因为没有,找到).文件还说明:

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

请注意,这是第一个语句的结果.如果找不到搜索字符串,则Java开发人员不会添加其他情况.