Java 我的程序在发出if语句后跳过用户输入

Java 我的程序在发出if语句后跳过用户输入,java,class,logic-error,Java,Class,Logic Error,我在一个程序的类中遇到了一个问题,程序跳过了一些变量。该程序的思想是,我想使用bufferedreader将变量写入文件。用户注册并登录(这在另一个类中完成),然后在选择插入所需信息后,选择要发布的事件类型。我在这里分享的方法是在用户选择“Online Event”的实例中 不要将nextLine和任何其他扫描方法混合使用。只使用nextLine,或者根本不使用nextLine。如果您想阅读整行内容(通常是这样!),请始终对扫描仪执行以下操作: Scanner s = new Scanner(.

我在一个程序的类中遇到了一个问题,程序跳过了一些变量。该程序的思想是,我想使用bufferedreader将变量写入文件。用户注册并登录(这在另一个类中完成),然后在选择插入所需信息后,选择要发布的事件类型。我在这里分享的方法是在用户选择“Online Event”的实例中


不要将
nextLine
和任何其他扫描方法混合使用。只使用nextLine,或者根本不使用nextLine。如果您想阅读整行内容(通常是这样!),请始终对扫描仪执行以下操作:

Scanner s = new Scanner(...);
s.useDelimiter("\r?\n");
然后调用
.next()
读取一行


注意:常见的建议是调用额外的nextLine()来“清除缓冲区”。这是个坏建议;如果用户曾经使用过空格键,则该选项不起作用。而且,你知道,在大多数键盘上,这是一个相当大的键。上面没有这种奇怪的警告,而且简单得多。

忘记提到它特别跳过了变量重定时(用于输入事件的重复时间)和限制(用于输入事件限制)。很抱歉,这是我第一次使用堆栈溢出。
Scanner s = new Scanner(...);
s.useDelimiter("\r?\n");