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*”。
参考资料:百度百科—正则表达式
可以转化成String,然后判断里面有没有小数点,如果有,就是小数,没有就不是小数。
public class JudgeNumber {
public static boolean judgeIsDecimal(String num){
boolean isdecimal = false
if (num.contains(".")) {
isdecimal=true
}
return isdecimal
}
public static void main(String[] args) { //测试的main方法
int num1 = 34
double num2=67.8
boolean is1 = judgeIsDecimal(String.valueOf(num1))
boolean is2=judgeIsDecimal(String.valueOf(num2))
System.out.println(is1)//fasle
System.out.println(is2)//true
}
}
先判断整数:string.matches("\\d+")||string.matches("\\d+\\.0+")再小数string.matches("\\d+\\.\\d+")
如果要对string的1.00转int,还要用split分一下