情况1
String a = " ";
String[] b = a.split(",");
System.out.println(b.length);
打印1.为什么?
情况二
String a = ",,,,,,,,,,,,";
String[] b = a.split(",");
System.out.println(b.length);
打印0。为什么?
老实说,我在这里不知所措
最佳答案
String.split的文档中提到了此行为:
您的第一个示例应提供一个包含单个包含空格的字符串的数组。包含空格的字符串不为空,因此包含在结果中。
您的第二个示例将给出一个包含大量空字符串的数组,但是这些空字符串不包含在文档中提到的结果数组中。
关于Java设计人员为什么决定在limit
为零时删除结尾的空字符串是一个好主意-我不知道。大多数其他编程语言/平台都不会这样做。我认为这是一个“陷阱”-这项功能无法像大多数人所期望的那样起作用。