繁体   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