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; }

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM