有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我不能在try/catch中键入多个输入?

我在尝试在do while循环、try/catch语句中获取多个输入时遇到困难:

FileOutputStream file;
PrintStream pen;
String name;
char exitInput;

try {
        file = new FileOutputStream("names.txt");
        pen = new PrintStream(file);
        
        do {

            System.out.print("Enter a name: ");
            name = input.nextLine();
            
            pen.print(name + "\n");
            
            System.out.println("Would you like to enter more names?");
            System.out.print("Option(y/n): ");
            exitInput = input.next().charAt(0);
        
        } while(exitInput != 'n');
        
        pen.close();
    
    } catch(IOException exc) {
        
        System.out.println("<INPUT ERROR>");
    
    }

当我运行这段代码时,它会问我一个名字,然后问我是否想输入更多的名字。如果我选择YES,那么它只跳过“name=input.nextLine();”行和显示:

Enter a name: Would you like to enter more names?
Option(y/n):

键入两个“name=input.nextLine();”时,问题似乎已解决,然而,这不是一个很好的解决方案


共 (1) 个答案

  1. # 1 楼答案

    input.next()只消耗一个令牌,而不是整个行。当您调用input.nextLine()时,它将消耗该行的其余部分

    要修复此问题,请将input.next()替换为input.nextLine()