黑马程序员技术交流社区

标题: 字符串转换为int类型的问题 [打印本页]

作者: 马林康    时间: 2012-6-29 09:36
标题: 字符串转换为int类型的问题
本帖最后由 马林康 于 2012-6-29 10:10 编辑

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

ok,用try catch吧
作者: 刘笑    时间: 2012-6-29 09:47
加个else不行么
作者: 李天甲    时间: 2012-6-29 09:52
本帖最后由 李天甲 于 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型的范围,无法转换"); //处理转换错误,输出信息
     }


作者: 曾_强    时间: 2012-6-29 09:54
通过设置标记位 flag 不知能不能解决您的问题 。

你这样问,没法回答的。
作者: 陆强强    时间: 2012-6-29 10:04
String line="4444444444444";
long i=Long.parseLong(line);
          System.out.println(i);
再大的话就抛异常吧,没有更大的类型了
作者: 黄连兵    时间: 2012-6-29 10:40
try{
int i=Integer.parseInt(line);
}catch(NumberFormatException e){
System.out.println("输入的数字太大");
}
你看看API吧,转换失败是会抛出异常的,抓到异常不就可以了?可以先判断这段字符串是不是全由数字组成,是的话再try,出现的异常就是范围过大了呗!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2