日期:2014-05-20  浏览次数:20723 次

求助: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成功。
------解决方案--------------------
学习
------解决方案--------------------
异常处理信息返回给用户!