我不明白为什么以下输出有意义。
空字符串上的字符串拆分方法返回长度为1的字符串数组
String[] split = "".split(",");
System.out.println(split.length);
返回长度为1的String数组
String[] split = "Java".split(",");
System.out.println(split.length);
返回长度为1的String数组
如何区分??
答案 0 :(得分:10)
此方法返回的数组包含此字符串的每个子字符串,该子字符串由与给定表达式匹配的另一个子字符串终止,或者以字符串的结尾终止。
要回答你的问题,它会做预期的事情:返回的子字符串由输入字符串的末尾终止(因为没有找到,
)。文档还说明:
如果表达式与输入的任何部分都不匹配,那么结果数组只有一个元素,即该字符串。
请注意,这是第一个声明的结果。如果无法找到搜索字符串,Java开发人员不会添加其他情况。
答案 1 :(得分:2)
我也打了这个。它返回的是字符串,但不包括拆分字符。如果您不想获得任何字符串,请使用StringTokenizer:
StringTokenizer st = new StringTokenizer(someString,',');
int numberOfSubstrings = st.countTokens();
答案 2 :(得分:1)
它返回原始字符串(在本例中为空字符串),因为没有,要拆分。
答案 3 :(得分:0)
它返回一个因为你正在测量split数组的大小,它包含一个元素:一个空字符串。