Java 为什么可以';我是否在try/catch中键入多个输入?

Java 为什么可以';我是否在try/catch中键入多个输入?,java,try-catch,java.util.scanner,Java,Try Catch,Java.util.scanner,我在尝试在do while循环、try/catch语句中获取多个输入时遇到困难: FileOutputStream file; PrintStream pen; String name; char exitInput; try { file = new FileOutputStream("names.txt"); pen = new PrintStream(file); do { S

我在尝试在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>");
    
    }
当键入两个“name=input.nextLine();”时,这个问题似乎可以解决,但这不是一个很好的解决方案。

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

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

,而(exitInput!=“n”)
字符串不能像这样进行比较。谢谢,但是“exitInput”是一个char变量。而且,这不是我想要解决的问题。
Enter a name: Would you like to enter more names?
Option(y/n):