java判断数字类型(小数和整数)
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
按照上面的代码能检验字符是否为整数但是小数的话怎么判断呢??? 展开
java判断数字类型是否为小数,可以采用正则表达式的方式来判断,以下是使用正则表达式来判断数字类型是否为小数的代码:
public static boolean isNumber(String str) {
boolean isInt = Pattern.compile("^-?[1-9]\\d*$").matcher(str).find();
boolean isDouble = Pattern.compile("^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$").matcher(str).find();
return isInt || isDouble;
}
扩展资料
java判断数字类型,正则表达式用法:
1、$:匹配输入行尾。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
2、*:匹配前面的子表达式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于{0,}。
3、+:匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
4、?:匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”。?等价于{0,1}。
5、{n,}:n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。
参考资料:百度百科—正则表达式
^\\d+\\.\\d+$ 判断是否位正小数
-\\d+$:判断是否位负整数
你代码里这三个用 “ | ”(或)运算符连接,表示只要是整数或者是正的小数就是true了。
另外可以加一句
^-\\d+\\.\\d+$ 判断是否位负的小数
按照你的要求:
Pattern pattern = Pattern.compile("^\\d+$|-\\d+$"); // 就是判断是否为整数
Pattern pattern = Pattern.compile("\\d+\\.\\d+$|-\\d+\\.\\d+$");//判断是否为小数
String reg = "\\d+(\\.\\d+)?";
String str = "12.33333";
System.out.println(str.matches(reg));