CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

紧急提问………关于Ingeter.parseInt()的问题

楼主EXvision(EXvision)2005-03-01 00:01:51 在 Java / Web 开发 提问

/**  
            *   转换失败则自动返回   i  
            *    
            *   @param   s  
            *   @return   i  
            */  
          public   static   int   StringToInt(String   s,   int   i)  
          {  
                  if   (s   !=   null   ||   !s.equalsIgnoreCase(""))  
                  {  
                          try  
                          {  
                                  i   =   Integer.parseInt(s);  
                          }  
                          catch   (Exception   e)  
                          {  
                                  //  
                          }  
                          return   i;  
                  }  
                  else  
                  {  
                          return   i;  
                  }  
          }  
   
  但是调用的时候  
  int   ID=Check.StringToInt(request.getParameter("ID"),-1);  
   
  如果ID非数字的话就报错  
   
  type   Exception   report  
   
  message    
   
  description   The   server   encountered   an   internal   error   ()   that   prevented   it   from   fulfilling   this   request.  
   
  exception    
   
  org.apache.jasper.JasperException:   null  
   
  root   cause    
   
  java.lang.NumberFormatException:   null  
   
   
  !!  
  明明已经catch了阿!!为什么还会报错?  
  Struts的Action中。。。请问各位大人如何过滤非int的字符。。。 问题点数:0、回复次数:8Top

1 楼EXvision(EXvision)回复于 2005-03-01 01:56:18 得分 0

上面打错了  
  是  
  public   static   int   StringToInt(String   s,   int   i)  
          {  
                  if   (s   !=   null   &&   !s.equalsIgnoreCase(""))  
                  {  
                          try  
                          {  
                                  i   =   Integer.parseInt(s);  
                          }  
                          catch   (Exception   e)  
                          {  
                                  //  
                          }  
                          return   i;  
                  }  
                  else  
                  {  
                          return   i;  
                  }  
          }  
   
  请大家帮忙阿  
  Top

2 楼singinthesky(ichoose)回复于 2005-03-01 08:10:39 得分 0

试试if   (s   !=   null   &&   !"".equalsIgnoreCase(s))Top

3 楼vgvg(上帝在关闭一扇窗的同时,在别处打开了一扇门。可这扇门迟迟不开,我只好破门而入!)回复于 2005-03-01 08:20:38 得分 0

try  
                          {  
                                  i   =   Integer.parseInt(s);  
                          }  
                          catch   (Exception   e)  
                          {  
                                  //  
                          }  
                          return   0;  
  Top

4 楼hxzg001(丢掉幻想,准备辞职)回复于 2005-03-01 08:46:51 得分 0

没有问题Top

5 楼wts(天胜)回复于 2005-03-01 08:53:49 得分 0

if   (s   !=   null   ||   !s.equalsIgnoreCase(""))  
  我的理解,这里是两个条件相或,如果第一个条件满足的话,也就是说第一个条件返回true的话,第二个条件并不会再进行判断,也就是说!s.equalsIgnoreCase(""))不执行了。  
  所以如果你传递进来"abc",满足了第一个条件,程序就会向下执行,然后到了i   =   Integer.parseInt(s);就会出错了。Top

6 楼kingmaxno1(学会飞翔)回复于 2005-03-01 09:12:58 得分 0

楼主,这说明你的错误是在进入try{...}catch{}块之前,报的错,  
  if   (s   !=   null   ||   !s.equalsIgnoreCase(""))  
  错在这里,如果传进来的值是null,s.equalsIgnoreCase("")就会报错,  
  有两种改法:  
  1.改成   "".equalsIgnoreCase(s)  
  2.改成     if   (s   !=   null   |   !s.equalsIgnoreCase(""))  
  Top

7 楼magie16036936(magie)回复于 2005-03-01 09:35:46 得分 0

同意楼上~  
  你的原因是在if条件判断上出的问题。好好检查那里!Top

8 楼Times2001(回车)回复于 2005-03-01 10:18:23 得分 0

程序没问题Top

相关问题

  • 紧急提问!!!!!!!!
  • 紧急提问,请问谁用过CDialogBar
  • 紧急提问,c++里的画图
  • 提问:高分回赠!! 紧急求助。。
  • 紧急提问,不胜感激:如何实现数字签名
  • 紧急提问,ListCtrl的问题,在线等待
  • 火烧眉毛!紧急提问!关于程序图标.......
  • ★空心菜提问★ 紧急求助+散分!Help Me!
  • 紧急提问 与动态创建数据源有关
  • 紧急提问,我要生成一个.so库,谁能给我这条指令

关键词

  • null
  • equalsignorecase
  • parseint
  • 报错
  • stringtoint
  • 条件
  • catch
  • 话
  • exception
  • integer

得分解答快速导航

  • 帖主:EXvision

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo