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