stringA.split(stringB)
stringA字符串用子串stringB分割字符串,得到一个数组。
现在发现,当stringA是长度为0的串时,得到的数组不是预期的。
String stringA = "";
String stringB=" ";
String[] tokens = stringA.split(stringB);
System.out.println("\""+stringA+"\".split(\""+stringB+"\").length="+tokens.length);
for (int i=0;i<tokens.length;i++)
System.out.println("\""+stringA+"\".split(\""+stringB+"\")["+i+"]="+\
tokens[i]+"(length:"+tokens[i].length()+")");
结果
"".split(" ").length=1
"".split(" ")[0]=(length:0)
String stringA = "";
String stringB="ABC";
String[] tokens = stringA.split(stringB);
System.out.println("\""+stringA+"\".split(\""+stringB+"\").length="+tokens.length);
for (int i=0;i<tokens.length;i++)
System.out.println("\""+stringA+"\".split(\""+stringB+"\")["+i+"]="+\
tokens[i]+"(length:"+tokens[i].length()+")");
结果输出
"".split("ABC").length=1
"".split("ABC")[0]=(length:0)
String stringA = "";
String stringB="";
String[] tokens = stringA.split(stringB);
System.out.println("\""+stringA+"\".split(\""+stringB+"\").length="+tokens.length);
for (int i=0;i<tokens.length;i++)
System.out.println("\""+stringA+"\".split(\""+stringB+"\")["+i+"]="+\
tokens[i]+"(length:"+tokens[i].length()+")");
结果输出
"".split("").length=1
"".split("")[0]=(length:0)
可见,""(空串)用任何串分割,都得到size为1的数组。
这不是预期的。
预期,得到空数组。
那以后用split()函数前要先判断一下stringA是否有效、是否是长度为0的串。