背景:
在获取用户输入的内容时候去判断内容是否为金额(包含正负号,最多两位小数,逗号分隔符)
核心代码:
public static boolean isNumber(String str) {
// 整数
//Pattern pattern = Pattern.compile("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$");
// 包含负数
Pattern pattern = Pattern.compile("^-?([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$");
Matcher match = pattern.matcher(str);
return match.matches();
}
测试代码:
public static void main(String[] agrs) {
System.out.println(isNumber("-100007777777777777777777777777000.11"));
System.out.println(isNumber("100,000,007,777.11"));
System.out.println(isNumber("-100000007777.11"));
System.out.println(isNumber("100000007777.11"));
System.out.print