Java 正則校驗金額,只能是正整數或2位小數以內
阿新 • • 發佈:2018-12-11
參考:https://blog.csdn.net/u012402177/article/details/52604725
public class Test { public static boolean isNumber(String str) { Pattern pattern = Pattern.compile("^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$"); // 判斷小數點後2位的數字的正則表示式 Matcher match = pattern.matcher(str); return match.matches(); } public static void main(String[] args) { boolean a = isNumber("1"); boolean b = isNumber("1.0"); boolean c = isNumber("1.22"); boolean d = isNumber("1.222"); boolean e = isNumber("222.22"); boolean f = isNumber("0.01"); boolean g = isNumber("0.001"); boolean h = isNumber(""); boolean i = isNumber("1."); System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); System.out.println(e); System.out.println(f); System.out.println(g); System.out.println(h); System.out.println(i); Double amountD = Double.parseDouble("1."); Long fronezAmount = BigDecimal.valueOf(amountD * 100).toBigInteger().longValue(); System.out.println(amountD); System.out.println(fronezAmount); } }
測試結果: