求助:Integer.parseInt(test); 如果test="test"的话。。。。
如题的话 肯定会报
java.lang.NumberFormatException: For input string: "test"
那我现在想在程序中限制住这种现象的出现,当然test 变量是不定的,那我想先判断一下是否为数字,如果不是数字就不做下面的处理了,要非常非常简单的那种。。。。谢谢
------解决方案--------------------if(test.matchers("\\d+"){
Integer.parseInt(test);
}
这样来吧.
------解决方案--------------------错了,应该是:
if(test.matches("\\d+"){
i=Integer.parseInt(test);
}
------解决方案--------------------如果不是数字的可能性非常小的话,可以直接靠异常来判断。
否则就是楼上说得,另外,apache-commons-lang里也有很多辅助方法,比如StringUtils.isNumber之类的。
------解决方案--------------------if(test.matches("^-?\\d+$")){
//数字
}else{
//非数字
}
但不是非常非常简单的那种。。。
------解决方案--------------------1 try catch 一下,
其实多数情况下,大家还是很规矩的,你还可以在客户端用js做一下验证。
我个人喜欢为更多的人服务,把大家当成好人来看,而不是人为所有人都在故意的把系统弄坏。
另一方面,这个try其实也很耗资源的,呵呵
2 用正则判断一下 \d 就是数字
3 用现成的辅助工具类,比如jinxfei的那个。
------解决方案--------------------小数可以通过么
------解决方案--------------------如果用正则,就用4楼的,"+23","23L"之类的字符串都不会parse成功。
------解决方案--------------------学习
------解决方案--------------------异常处理信息返回给用户!