字符串,拆分。需要帮助理解

时间:2010-07-13 22:51:04

标签: java string split

案例1

String a = "         ";
String[] b = a.split(",");
System.out.println(b.length);

打印1.为什么?

案例2

String a = ",,,,,,,,,,,,";
String[] b = a.split(",");
System.out.println(b.length);

打印0.为什么?

老实说,我在这里不知所措。

3 个答案:

答案 0 :(得分:12)

String.split的文档中提到了此行为:

  

此方法的工作方式就像调用具有给定表达式的two-argument split method和限制参数为零一样。 因此,结尾数组中不包含尾随空字符串

你的第一个例子应该给出一个包含一个包含空格的字符串的数组。包含空格的字符串不为空,因此它包含在结果中。

你的第二个例子会给出一个包含大量空字符串的数组,但是这些数据不包含在文档中提到的结果数组中。

至于为什么Java设计者决定在limit为零时删除尾随空字符串是个好主意 - 我不知道。大多数其他编程语言/平台不这样做。我认为这是一个“陷阱” - 这个功能并不像大多数人所期望的那样有效。

答案 1 :(得分:1)

案例1在b数组中有一个项目“” - 你的空格

案例2正在移除空条目

答案 2 :(得分:0)

在SQL Server 2005中 我的数据库名称:a 表名:a 列名:a(varchar(max)),b(int) 值

a b

你好| howdoudo | imfine |谢谢1
h | ho | ine | ths 2 holddlo | howdddoudo | imfiddne | tdhs 3

告诉我,获取表格的分割存储过程就像是这样,即 b = 1 b = 2 b = 3

输出输出 a a 你好h holddlo Howdoudo ho howdddoudo
imfine ine imfiddne 谢谢tdhs