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;
}
以上。⼩⽩⼀个,欢迎指正!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论