Integer.parseInt(string)给出了数字格式异常

时间:2013-09-03 17:24:50

标签: java

为什么这段代码会抛出NumberFormatException

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

如何为int获取String的价值?

3 个答案:

答案 0 :(得分:12)

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

BigInteger veryBig = new BigInteger("1111111111111111111111111111111111111111");

来自BigInteger Javadocs

  

不可变的任意精度整数。

答案 1 :(得分:2)

这是因为int的数字字符串非常大。可能这需要BigInteger

答案 2 :(得分:1)

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