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

时间:2022-02-16 18:40:47

记录缘由:

  公司项目需要从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;
}

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