2 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
我認(rèn)為您正在尋找僅驗(yàn)證十進(jìn)制數(shù)字(不包括整數(shù))。如果是這種情況,那么您可以使用正則表達(dá)式:
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
}
這將循環(huán)直到用戶只輸入有效的十進(jìn)制輸入。這個(gè) 正則表達(dá)式的解釋。

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
由于您不想int被接受,您可以添加一個(gè)if來檢查輸入String是否有小數(shù)點(diǎn)。
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 ");
}
添加回答
舉報(bào)