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