用Integer.parseInt()转换字符时抛出NumberFormatException异常,把字符改短一点又没事


String line3[1]="8613719716";
 int int1=java.lang.Integer.parseInt(line3[1]);

以上是程序中的一小段,但是在运行的过程中总是抛出异常
Exception in thread "main" java.lang.NumberFormatException: For input string: "8613719716"

但是把字符减少一位变成"861371971"时又不出抛出异常,我想问下这到底是不是字符长度的问题,或者是其它的原因

11 个解决方案

#1


int类型存储范围是-2,147,483,648 --2,147,483,647 
"8613719716"超出范围 转换失败

#2


用System.out.println(Integer.MAX_VALUE);输出的是2147483647,晕,多看点基础的书

#3


这是因为你没搞清楚java中int类型的范围,在java中int取值是从-2147483648到2147483647,2的31次方.而你的 String line3[1]="8613719716";超过了这个最大的值,当然会抛NumberFormatException这个异常,说明不能转换类型.去掉一个能成功是因为他在范围内.

#4


那我要怎么样才能把"8613719716"这个字符转换成整形的呢

#5


BigInteger  b = new BigInteger("8613719716");

#6


楼上正确,用大数字吧,import一个java.math,可以得到

#7


8613719716 根本无法直接使用int表示的,只能用long

如果更大了就得用到BigInteger

#8


用了long还是不行的

#9


Long.parseLong(String)

#10


嗯.你的数超出了int的范围了!!

#11


用Long.parseLong(String)
已经解决问题,谢谢各位
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告