java判断数字类型(小数和整数)

Pattern pattern = Pattern.compile("^\\d+$|^\\d+\\.\\d+$|-\\d+$");
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*”。

参考资料:百度百科—正则表达式

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-07
^\\d+$ 是判断位正整数的
^\\d+\\.\\d+$ 判断是否位正小数
-\\d+$:判断是否位负整数
你代码里这三个用 “ | ”(或)运算符连接,表示只要是整数或者是正的小数就是true了。

另外可以加一句
^-\\d+\\.\\d+$ 判断是否位负的小数

按照你的要求:
Pattern pattern = Pattern.compile("^\\d+$|-\\d+$"); // 就是判断是否为整数
Pattern pattern = Pattern.compile("\\d+\\.\\d+$|-\\d+\\.\\d+$");//判断是否为小数本回答被提问者和网友采纳
第2个回答  2011-07-29
你那个写得太麻烦了

String reg = "\\d+(\\.\\d+)?";
String str = "12.33333";

System.out.println(str.matches(reg));
相似回答