[英]Java User input Validation
我試圖弄清楚如何驗證用戶的輸入。 我希望用戶輸入一個雙精度字,但是如果用戶輸入一個字符串,我希望問題一直重復直到輸入雙精度數。 我已經搜尋了,但找不到任何東西。 到目前為止,以下是我的代碼,感謝您的幫助。 我必須使用一個do while循環,我被困在while循環中以確保輸入是double而不是字符串。
public class FarenheitToCelsius {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
double fahrenheit, celsius;
Scanner in = new Scanner(System.in);
do{
System.out.printf("Enter a fahrenheit degree: ");
fahrenheit = in.nextDouble();
}
while();
celsius = ((fahrenheit - 32)*5)/9;
System.out.println("Celsius value of Fahrenheit value " + fahrenheit + " is " + celsius);
您可以在此處使用的一個技巧是將整個用戶輸入讀取為字符串,這將允許任何類型的輸入(字符串,雙精度或其他任何形式)。 然后,使用Double#parseDouble()
嘗試將該輸入轉換為真正的double值。 如果發生異常,請允許循環繼續,否則,請結束循環並繼續執行程序的其余部分。
Scanner in = new Scanner(System.in);
boolean isValid;
do {
System.out.printf("Enter a fahrenheit degree: ");
isValid = false;
String input = in.nextLine();
try {
fahrenheit = Double.parseDouble(input);
isValid = true;
}
catch (Exception e) {
// do something
}
} while(!isValid);
celsius = ((fahrenheit - 32) * 5) / 9;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.