2 回答
TA贡献1786条经验 获得超13个赞
我认为您正在寻找仅验证十进制数字(不包括整数)。如果是这种情况,那么您可以使用正则表达式:
System.out.println("Enter the temperature in double:");
String temp = input.nextLine();
while (temp != null && !temp.matches("^[0-9]*\\.([0-9]+)+$")) { // use of regex here
System.out.println("Enter the temperature in double:");
temp = input.nextLine(); // read input again
}
这将循环直到用户只输入有效的十进制输入。这个 正则表达式的解释。
TA贡献1825条经验 获得超4个赞
由于您不想int被接受,您可以添加一个if来检查输入String是否有小数点。
System.out.println("Enter the temperature in double:");
String temp = (new Scanner(System.in)).next();
if (temp.contains(".")) {
try {
Double temperature = Double.parseDouble(temp);
} catch(Exception e) {
isValid = false;
System.out.println("Temperature must be a double ");
}
} else {
isValid = false;
System.out.println("Temperature must be a double ");
}
添加回答
举报
