2

为什么这段代码会抛出NumberFormatException

int a = Integer.parseInt("1111111111111111111111111111111111111111");

如何获得int价值String

4

3 回答 3

12

您尝试解析的值远大于最大允许int值(Integer.MAX_VALUE2147483647),因此NumberFormatException会抛出 a。它也大于最大允许值longLong.MAX_VALUE9223372036854775807L),因此您需要 aBigInteger来存储该值。

BigInteger veryBig = new BigInteger("1111111111111111111111111111111111111111");

来自BigIntegerJavadocs

不可变的任意精度整数。

于 2013-09-03T17:26:42.043 回答
2

这是因为数字字符串对于int. 可能这需要一个BigInteger.

于 2013-09-03T17:26:36.153 回答
1

该字符串没有整数值。这就是它抛出异常的原因。整数的最大值是 2147483647,你的值显然超过了这个值。

于 2013-09-03T17:27:08.863 回答