将字符串数组转换为大数字数组

时间:2013-03-14 19:26:30

标签: java arrays string int largenumber

所以,在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来说太大了。有关如何将其转换为大数组的任何想法吗?

3 个答案:

答案 0 :(得分:5)

你正在分裂一个空字符串。例如,

"123 456".split("")

产生这个数组:

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

这是您的例外来源。

答案 1 :(得分:0)

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

但是说,NumberFormatException表示失败是因为你传递的是一个空字符串。你确定你正确地拆分了字符串,还是拆分甚至是必要的? args中的main数组已经在空格上分割,假设args来自哪里。

答案 2 :(得分:0)

来自args[1].split("")的数组的第一个元素是一个空字符串,据我所知导致异常java.lang.NumberFormatException,因为它无法转换为Integer