2012-02-29 49 views
-2

我有一个大于2,147,483,647的字符串,我需要解析它。 Integer.parseInt不会做它们的工作,它会抛出一个异常。在Java中,如何解析比int大小大的字符串

+1

你打算存入什么?一个“长”?或者一个'BigInteger'? – Mysticial 2012-02-29 00:06:25

+2

然后使用['Long.parseLong'](http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#parseLong%28java.lang.String%29)??? – mre 2012-02-29 00:06:43

+0

该字符串中的数字的最小值和最大值是多少? – ggreiner 2012-02-29 00:15:59

回答

1

还有另一种称为Long的类型,它可以存储数字高达2^63 - 1。尝试解析使用java.text.NumberFormat的字符串转换为长:

NumberFormat format = NumberFormat.getInstance(java.util.Locale.US); 

    Number number = format.parse("2,147,483,647"); 
    Long value = number.longValue(); 
+0

我试过了,得到了一个'NumberFormatException'。 – Sean 2012-02-29 00:13:20

+0

对不起,我误解了'parseLong'做了什么,我用不同的解决方案编辑了答案。 – ggreiner 2012-02-29 00:15:19

+0

或者只是使用'Long.parseLong(“2147483648”)'。 – 2012-02-29 00:33:17

0

我假设你去了字符串,因为INT管不住你的价值。这不是必需的。您可以直接使用BigInteger,它可以处理更大的值。