【问题标题】:how does nextLine discard the input?nextLine 如何丢弃输入?
【发布时间】:2014-06-23 20:25:38
【问题描述】:

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

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

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

【问题讨论】:

  • 忽略nextLine()返回的结果就丢弃

标签: java exception java.util.scanner


【解决方案1】:

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

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

为了避免它在调用newLine()之前和成功执行nextInt()之后,将next()方法调用从缓冲区中读取剩余的\n

【讨论】:

  • 谢谢亲爱的 Joshi,但很遗憾我无法理解您的意思...您能给我一本书的名称以供阅读更多内容或一个好的资源...吗?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 2013-11-15
    • 2011-10-27
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    相关资源
    最近更新 更多