//如果参数是空并且不是数字,则返回。
if(null==request.getParameter("guildId")&&
"".equals(request.getParameter("guildId"))&&
 request.getParameter("guildId").matches("\\D+"))
return null;
int guildId = Integer.parseInt(request.getParameter("guildId"))+1;
这样写判断,为什么还会 出现下面异常:
java.lang.NumberFormatException: For input string: ""
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:470)
java.lang.Integer.parseInt(Integer.java:499)
com.dbluethink.dkp.web.DkpController.listDkp(DkpController.java:279)

解决方案 »

  1.   

    你不觉得那是request.getParameter("giuldId")很烦?我看的都很难过....很反感这样写代码的.
    先用一个变量保存起来嘛..
     如果参数为并且不是数字....敢问这话如何理解??应该是如果参数为空或者不是数字,则返回吧?
    String guildId = request.getParameter("guildId");
    if(null  ==  guildId || "".equals(guildId) ||  !guildId.matches("\\d+")){
     return null;
    }else{
     ..........
    }
    搞不明白你那判断条件是什么意思?  得到的参数是null而且是空字符串而且还是匹配全整数...
    看的我很难过....
      

  2.   

    java.lang.NumberFormatException: For input string: ""你取得的字符是一个空字符串。转换int失败。
      

  3.   

    1 用request 或者是session取值出来的时候,要注意类型强转,默认情况下request 或 session
      取出的值都是object类型的,你用"".equals(object)这应该是不对的!比较之前先转换!
    2 看程序貌似你是想判断取出的值是不是null或者是不是空,如果成立的话,就返回NULL
      可是你用的关系符号全是AND呵,逻辑不通吧!变成了当值是NULL并且为空的时候返回NULL!
      

  4.   

    是因为request.getParameter("guildId")是空串""