以下是我的代码:
- Java code
/** * 判断是否是Integer类型 * @author daichangfu * @param str * @return */ public boolean isNumber(String str){ if(str!=null&&!"".equals(str.trim())){ Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(str); Long number = 0l; if(isNum.matches()){ number=Long.parseLong(str); }else{ return false; } if(number>2147483647){ return false; } }else{ return false; } return true; }
当我的URL参数从前台传过来的时候,我需要在后台先判断是否是数字,然后对其进行类型转换,我们头要求不论客户在地址栏怎么输入参数都不能报错。
但是我判断了参数都是数字,但是它的大小超过了int的长度会报错,所以我把它先转换成了Long型,然后判断,但是如果它输入的大小超过了Long一样会报错啊....。 请问大家,这个我改怎么办?
------解决方案--------------------
你只要判断的话,很容易,直接number=Long.parseLong(str);
try catch一下,有异常,return false
否则return true
------解决方案--------------------
- Java code
public static boolean isNumber(String str){ if(str==null||str.length()==0) return false; char c[]=str.toCharArray(); for (int i = 0; i < c.length; i++) { if(!Character.isDigit(c[i])){ return false; } } //到此确认是数字 //其他操作 return false; }
------解决方案--------------------
- Java code
boolean b = org.apache.commons.lang.math.NumberUtils.isNumber("123");