📅  最后修改于: 2023-12-03 15:31:29.325000             🧑  作者: Mango
Java中有多种方法来判断一个数字是否为整数。以下是最常见的三种方法。
Java中的Integer.parseInt()方法可以将一个字符串转换成整数,如果转换失败会抛出NumberFormatException异常。我们可以利用这个特性来判断一个字符串是否是整数。具体步骤如下:
public static boolean isInteger(String str) {
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}
这个方法接受一个字符串参数,返回一个布尔值。如果字符串可以被成功转换成整数,则返回true,否则返回false。
整数可以被除以1得到整数,而非整数除以1得到的是小数。因此我们可以利用这个特性,通过对输入的数字做除法的方式判断它是否是整数。具体步骤如下:
public static boolean isInteger(double num) {
return num == Math.floor(num);
}
这个方法接受一个双精度浮点数参数,返回一个布尔值。如果参数可以被除以1得到整数,则返回true,否则返回false。
正则表达式可以用来匹配字符串中的特定模式。我们可以利用正则表达式来判断一个字符串是否是整数。具体步骤如下:
public static boolean isInteger(String str) {
return str.matches("^-?\\d+$");
}
这个方法接受一个字符串参数,返回一个布尔值。如果字符串符合整数的格式,则返回true,否则返回false。
public static void main(String[] args) {
String str1 = "123";
String str2 = "123.45";
String str3 = "abc";
double num1 = 123;
double num2 = 123.45;
System.out.println(str1 + " is integer: " + isInteger(str1));
System.out.println(str2 + " is integer: " + isInteger(str2));
System.out.println(str3 + " is integer: " + isInteger(str3));
System.out.println(num1 + " is integer: " + isInteger(num1));
System.out.println(num2 + " is integer: " + isInteger(num2));
}
输出结果:
123 is integer: true
123.45 is integer: false
abc is integer: false
123.0 is integer: true
123.45 is integer: false
可以看到,只有整数的字符串和双精度浮点数可以被正确地判断为整数。