0

所以,在 Java 中,我在命令参数中有一个很大的数字,比如说 12345678910,我不能使用 bigInteger,我已经这样做了:

String[] g = args[1].split("");

所以,我的字符串被放在一个字符串数组中。但是,我不能使用:

int[] ginormintOne = new int[g.length];
   for(int n = 0; n < g.length; n++) {
      ginormintOne[n] = Integer.parseInt(g[n]);
   }

它给了我这个:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at Ginormint.main(Ginormint.java:67)

我认为我的数字对于 int 来说太大了。关于如何将其转换为大数数组的任何想法?

4

3 回答 3

5

您正在拆分一个空字符串。例如,

"123 456".split("")

结果是这个数组:

["" "1" "2" "3" " " "4" "5" "6"]

这就是您的异常的来源。

于 2013-03-14T19:32:11.283 回答
0

使用Long.parseLong代替Integer.parseIntlong[]代替Long.parseLong

但话虽如此,这NumberFormatException表明失败是因为您传递给它的是一个空字符串。你确定你正确地分割了字符串,或者分割是必要的吗?假设这是从哪里来的,args数组 inmain已经按空格分割args

于 2013-03-14T19:27:57.480 回答
0

数组的第一个元素args[1].split("")是一个空字符串,我认为它会导致异常java.lang.NumberFormatException,因为它不能转换为Integer

于 2013-03-14T19:35:06.007 回答