use*_*681 7 java validation java.util.scanner
我是java的初学者.我想首先检查用户输入是String还是Double或int.如果是String,double或减号,则应提示用户再次输入有效的int号.只有当用户输入有效数字时,程序才会跳转尝试.我一直在想几个小时,我没有任何用处.请帮助,谢谢!
import java.util.InputMismatchException;
import java.util.Scanner;
public class Fizz {
public static void main(String[] args) {
System.out.println("Please enter a number");
Scanner scan = new Scanner(System.in);
try {
Integer i = scan.nextInt();
if (i % 3 == 0 && (i % 5 == 0)) {
System.out.println("FizzBuzz");
} else if (i % 3 == 0) {
System.out.println("Fizz");
} else if (i % 5 == 0) {
System.out.println("Buzz");
} else {
System.out.println(i + "?3?5???????????");
}
} catch (InputMismatchException e) {
System.out.println("");
} finally {
scan.close();
}
}
Run Code Online (Sandbox Code Playgroud)
一个简单的解决方法是将整个行/用户输入读取为String.这样的事情应该有效.(未经测试的代码):
String s=null;
boolean validInput=false;
do{
s= scannerInstance.nextLine();
if(s.matches("\\d+")){// checks if input only contains digits
validInput=true;
}
else{
// invalid input
}
}while(!validInput);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21886 次 |
| 最近记录: |