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