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

cds1 2007-07-10 10:25:18
String line3[1]="8613719716";
int int1=java.lang.Integer.parseInt(line3[1]);

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

但是把字符减少一位变成"861371971"时又不出抛出异常,我想问下这到底是不是字符长度的问题,或者是其它的原因
...全文
2901 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
free150 2007-07-10
  • 打赏
  • 举报
回复
嗯.你的数超出了int的范围了!!
malligator 2007-07-10
  • 打赏
  • 举报
回复
Long.parseLong(String)
cds1 2007-07-10
  • 打赏
  • 举报
回复
用了long还是不行的
ChDw 2007-07-10
  • 打赏
  • 举报
回复
8613719716 根本无法直接使用int表示的,只能用long

如果更大了就得用到BigInteger
sd4530609 2007-07-10
  • 打赏
  • 举报
回复
楼上正确,用大数字吧,import一个java.math,可以得到
shan1119 2007-07-10
  • 打赏
  • 举报
回复
BigInteger b = new BigInteger("8613719716");
cds1 2007-07-10
  • 打赏
  • 举报
回复
那我要怎么样才能把"8613719716"这个字符转换成整形的呢
nmjj2006 2007-07-10
  • 打赏
  • 举报
回复
这是因为你没搞清楚java中int类型的范围,在java中int取值是从-2147483648到2147483647,2的31次方.而你的 String line3[1]="8613719716";超过了这个最大的值,当然会抛NumberFormatException这个异常,说明不能转换类型.去掉一个能成功是因为他在范围内.

grass_12 2007-07-10
  • 打赏
  • 举报
回复
用System.out.println(Integer.MAX_VALUE);输出的是2147483647,晕,多看点基础的书
tryabc 2007-07-10
  • 打赏
  • 举报
回复
int类型存储范围是-2,147,483,648 --2,147,483,647
"8613719716"超出范围 转换失败
cds1 2007-07-10
  • 打赏
  • 举报
回复
用Long.parseLong(String)
已经解决问题,谢谢各位

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧