为什么这段代码会抛出NumberFormatException
?
int a = Integer.parseInt("1111111111111111111111111111111111111111");
如何为int
获取String
的价值?
答案 0 :(得分:12)
您尝试解析的值远远大于允许的最大int
值(Integer.MAX_VALUE
或2147483647
),因此会引发NumberFormatException
。它大于允许的最大long
(Long.MAX_VALUE
或9223372036854775807L
),因此您需要BigInteger
来存储该值。
BigInteger veryBig = new BigInteger("1111111111111111111111111111111111111111");
不可变的任意精度整数。
答案 1 :(得分:2)
这是因为int
的数字字符串非常大。可能这需要BigInteger
。
答案 2 :(得分:1)
该字符串没有整数值。这就是它抛出异常的原因。整数的最大值为2147483647,您的值明显超过该值。