Java 如何忽略字符串输入?

Java 如何忽略字符串输入?,java,string,validation,input,int,Java,String,Validation,Input,Int,我有一个问题,我如何做,使所有的输入,不是一个整数被忽略 例如: 备选案文1(添加) “输入两个整数:” 输入:asdf(如果您只需要用户输入一个整数作为输入,请尝试使用do while循环 do{ //Ask for user input here }while(!scanner.hasNextInt()); 如果输入不是整数,则此循环应继续运行。如果我正确理解了问题,您希望反复询问用户输入,直到他们提供整数为止 下面的方法将要求用户输入,直到他们输入一个字符串,该字符串可以解析为

我有一个问题,我如何做,使所有的输入,不是一个整数被忽略

例如:

备选案文1(添加) “输入两个整数:”
输入:asdf(如果您只需要用户输入一个整数作为输入,请尝试使用do while循环

do{
    //Ask for user input here
 }while(!scanner.hasNextInt());

如果输入不是整数,则此循环应继续运行。

如果我正确理解了问题,您希望反复询问用户输入,直到他们提供整数为止

下面的方法将要求用户输入,直到他们输入一个字符串,该字符串可以解析为int而不引发异常。一旦提供了有效的int,循环将中断

private static int getIntFromUser(Scanner scan) {
    int x = 0;
    while (true) {
        try {
            System.out.println("Enter an integer: ");
            x = scan.nextInt();
            break;
        } catch (InputMismatchException e) {
            scan.next();
        }
    }
    return x;
}
现在,检索两个数字的输入将如下所示:

int n1 = getIntFromUser(scan);
int n2 = getIntFromUser(scan);

您只需调用
scanner.nextLine()
并忽略它,永久跳过该行。(您不必使用它,您知道)如果用户输入一个非整数,然后输入一个整数,则可能会失败。可以使用两个扫描仪(以及不同的条件)修复该问题。
int n1 = getIntFromUser(scan);
int n2 = getIntFromUser(scan);