簡體   English   中英

Java用戶輸入驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM