情况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为零时删除结尾的空字符串是一个好主意-我不知道。大多数其他编程语言/平台都不会这样做。我认为这是一个“陷阱”-这项功能无法像大多数人所期望的那样起作用。

09-13 00:06