A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马林康 中级黑马   /  2012-6-29 09:36  /  2647 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马林康 于 2012-6-29 10:10 编辑

判断字符串转换为整数是否过大
  1.     int i=Integer.parseInt(line);
  2.                                 if(i>Integer.MAX_VALUE)
  3.                                         System.out.println("输入的数字太大");
复制代码
但是问题是 如果过大转换失败无法进行下面代码,请问如何解决?

ok,用try catch吧

5 个回复

倒序浏览
加个else不行么
回复 使用道具 举报
本帖最后由 李天甲 于 2012-6-29 09:54 编辑

int i=Integer.parseInt(line);//这个方法会抛出转换错误,如果数值真大于可转换的范围的话,就会直接抛错,没机会判断下面的条件
if(i>Integer.MAX_VALUE) //这个个人感觉没有必要
最好的办法是try一下...

     try{
      Integer target=Integer.parseInt(line); //将字符串转换为整数
     }catch (Exception e) {
      System.out.println("您输的数字范围超过Integer型的范围,无法转换"); //处理转换错误,输出信息
     }

点评

老李啊,赶明咱们这期出bug,就交给你了。。。。  发表于 2012-6-29 11:50

评分

参与人数 2技术分 +1 黑马币 +6 收起 理由
刘蕴学 + 1
孙峰 + 6 很给力!

查看全部评分

回复 使用道具 举报
通过设置标记位 flag 不知能不能解决您的问题 。

你这样问,没法回答的。
回复 使用道具 举报
String line="4444444444444";
long i=Long.parseLong(line);
          System.out.println(i);
再大的话就抛异常吧,没有更大的类型了
回复 使用道具 举报
try{
int i=Integer.parseInt(line);
}catch(NumberFormatException e){
System.out.println("输入的数字太大");
}
你看看API吧,转换失败是会抛出异常的,抓到异常不就可以了?可以先判断这段字符串是不是全由数字组成,是的话再try,出现的异常就是范围过大了呗!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马