Java正则表达式-匹配正负浮点数

记录缘由:

  公司项目需要从xml中获取标识为NUMBER的字符串,将之存入数据库中,存入的列的类型即为NUMBER。当遇到非数字时,原实现是通过异常:

String plainValue = null;
try { plainValue = new BigDecimal(colValue).toPlainString(); } catch (Exception e) { plainValue = ""; }

   没有去研究过BigDecimal(String)这个构造方法的内部实现,得空去研究一下。只是觉得无必要还是尽量不利用异常去做逻辑处理,所以这里用正则表达式实现:

private static final String NUMBER_REGEX = "([0-9]\d*\.?\d*)|((-)?[0-9]\d*\.?\d*)";

public static boolean matcher(String value) {
    Matcher matcher = pattern.matcher(value);
    return matcher.matches();
}
    
public String getTransferValue(String colValue){
  String plainValue = matcher(colValue) ? colValue : "";
return plainValue; }

   以上。小白一个,欢迎指正!

原文地址:https://www.cnblogs.com/icoding-t/p/5370242.html