package cn.com.hyundai.mms.common;
import java.math.BigDecimal;
/**
* 数字规则验证工具
*/
public class NumberUtil {
/**
* 数字验证
*/
public static final String REG_NUMBER = "^-?((\\d{1,14})|(0{1}))(\\.\\d{1,})?$";
/**
* 小数点 前14位 后2位
*/
public static final String REG_FLOAT_14_2= "^((\\d{1,14})|(0{1}))(\\.\\d{0,2})?$";
/**
* 字符串正则 数字 校验
*
* 包含正负数和小数
*
* @param val
* @return
*/
public static boolean checkNumber(String val){
if (val!=null && val.matches(REG_NUMBER)){
return true;
}
return false;
}
/**
* 字符串正则校验
*
* 正数
* 小数点前 14 位, 后 2位
*
* @param val
* @return
*/
public static boolean checkNumberFloat_14_2(String val){
if (val!=null && val.matches(REG_FLOAT_14_2)){
return true;
}
return false;
}
/**
* 字符串转BigDecimal 默认值0
*
* @param val
* @return
*/
public static BigDecimal strToBigDecimalDefault_0(String val) {
return new BigDecimal(NumberUtil.checkNumber(val) ? val : "0.0");
}
public static void main(String[] args) {
System.out.println(checkNumber("12584.1454"));
}
}