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正規表現文字列を引数として取ります。空の文字列に一致する空の正規表現を指定しました。したがって、文字列の先頭から空の文字列が 1 つ一致し、次にすべての文字が空の文字列で分割されます。おそらく有効な正規表現を提供する必要があります。


.split通常、分割の最後には空の文字列がありますが、Java は、この 1 つの引数の使用法で得られる配列からこれを意図的に除外します。

$ 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 に答える