如题的话 肯定会报 java.lang.NumberFormatException: For input string: "test"
那我现在想在程序中限制住这种现象的出现,当然test 变量是不定的,那我想先判断一下是否为数字,如果不是数字就不做下面的处理了,要非常非常简单的那种。谢谢

解决方案 »

  1.   

    if(test.matchers("\\d+"){
        Integer.parseInt(test); 
    }
    这样来吧.
      

  2.   

    错了,应该是:if(test.matches("\\d+"){ 
        i=Integer.parseInt(test); 
      

  3.   

    如果不是数字的可能性非常小的话,可以直接靠异常来判断。否则就是楼上说得,另外,apache-commons-lang里也有很多辅助方法,比如StringUtils.isNumber之类的。
      

  4.   

    if(test.matches("^-?\\d+$")){
        //数字
    }else{
        //非数字
    }但不是非常非常简单的那种
      

  5.   

    1 try catch 一下,
    其实多数情况下,大家还是很规矩的,你还可以在客户端用js做一下验证。
    我个人喜欢为更多的人服务,把大家当成好人来看,而不是人为所有人都在故意的把系统弄坏。
    另一方面,这个try其实也很耗资源的,呵呵
    2 用正则判断一下 \d 就是数字3 用现成的辅助工具类,比如jinxfei的那个。
      

  6.   

    如果用正则,就用4楼的,"+23","23L"之类的字符串都不会parse成功。
      

  7.   

    其实很简单啊 Integer.parseInt(test); 如果test是数字的话  进入  如果test="test"的话
    直接进catch 就不动了  也就是不处理了try{
    Integer.parseInt(test); 
    }catch(Exception e){}
      

  8.   

    我还想到一种方法:if(test.charAt(0)>'9' || test.charAt(0)<'0'){ 
        Integer.parseInt(test); 
    }