nextLine如何丢弃输入?

时间:2014-06-23 20:25:39

标签: java exception java.util.scanner

我是java的初学者。我想知道nextLine() 方法如何丢弃您当前的输入?例如,假设以下代码:

Scanner input = new Scanner(System.in);
int a = input.nextInt();
input.nextLine();

执行input.nextLine()后,“input”中的值将被丢弃。我想知道它是如何工作的?

2 个答案:

答案 0 :(得分:2)

当您输入数字并按 Enter 时,它会将整数值读取到a并将\n保留在缓冲区中

现在当你调用nextLine()时,它会直接从缓冲区跳过用户输入中获取换行符

以避免在调用next()之后以及成功执行\n之后将newLine()方法调用从缓冲区中读取nextInt()左侧

答案 1 :(得分:1)

input是表示扫描仪的对象。执行nextLine时,函数会一直读取,直到遇到换行符,将该数据存入缓冲区并返回缓冲区。需要注意的重要一点是“输入”不存储任何数据。它存储文件的表示以及您正在阅读的文件中的位置。因此输入中没有任何内容被丢弃相反,您只是不使用nextLine返回的值,但nextLine函数的副作用仍然会增加输入对象在文件中的位置。