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

为什么这段代码会抛出NumberFormatException

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

如何获取该Stringint值?

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

 BigInteger veryBig = new BigInteger("1111111111111111111111111111111111111111"); 

来自BigInteger Javadocs :

不可变的任意精度整数。

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

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