1

为什么

int a = 1234;
String b = a + "";
String[] c = b.split("");

导致:

c[0] = ""
c[1] = "1"
c[2] = "2"
c[3] = "3"
c[4] = "4"
4

1 回答 1

7

String.split将正则表达式 String 作为参数。您提供了一个空的正则表达式,它与空字符串匹配。因此,您从字符串的开头得到一个空字符串匹配,然后每个字符都被一个空字符串分割。您可能应该提供一个有效的正则表达式。


通常在拆分结束时会有一个空字符串,但 Java 故意将其从.split使用这种单参数用法产生的数组中排除。

$ php -r "var_dump(preg_split('//', 1234));"
array(6) {
  [0]=>
  string(0) ""
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "2"
  [3]=>
  string(1) "3"
  [4]=>
  string(1) "4"
  [5]=>
  string(0) ""
}
于 2013-02-07T05:30:58.363 回答