之前拼接SQL,需要判断传过来的对象是数字还是字符,判断的时候总会出现奇奇怪怪的对象导致不能兼容报错,现在直接try、catch
public static boolean isNumeric(Object str){
if(str == null || "".equals(str) || str.toString().equals("NaN") || str.toString().equals("Infinity")) {
return false;
}
try {
String number = new BigDecimal(str.toString()).toString();
int index = number.indexOf(".");
if(index<0){
return StringUtils.isNumeric(number);
}else{
String num1 = number.substring(0,index);
String num2 = number.substring(index+1);
return StringUtils.isNumeric(num1) && StringUtils.isNumeric(num2);
}
}catch (Exception e){
return false;
}
}
代码可能不符合所有人的要求,但是思路是这个思路。