java - 如何清除 Java 中的扫描仪缓冲区?

标签 java io

我有这样的事情:

    Scanner in=new Scanner(System.in);
    int rounds = 0;
    while (rounds < 1 || rounds > 3) {
        System.out.print("How many rounds? ");
        if (in.hasNextInt()) {
            rounds = in.nextInt();
        } else {
            System.out.println("Invalid input. Please try again.");
            System.out.println();
        }
        // Clear buffer
    }
    System.out.print(rounds+" rounds.");

如何清除缓冲区?

编辑:我尝试了以下方法,但由于某种原因它不起作用:

while(in.hasNext())
    in.next();

最佳答案

试试这个:

in.nextLine();

这会使扫描器前进到下一行。

关于java - 如何清除 Java 中的扫描仪缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604125/

相关文章:

java - 在 thymeleaf 模板中发布 OneToMany 数据库记录

java - 数据库/应用程序中实体的“整数”类型或 'String' 类型 ID?

python - “输入”在 3.5 IDLE 中有效,但在终端中无效

java - 如何在Java中更改一个文件,同时保持另一个硬链接(hard link)中的内容不变?

java - 如何使用 NIO 从 gzip 文本文件中逐行读取文本数据?

java - java数组中的轨道数字

java - MigLayout 宽度 - 单元格还是组件?

java - Codename One ConnectionRequest 中出现连接错误时的不正确行为

将大量 JAR 添加到类路径时,Java 文件 IO 性能下降超过 30%

java - 无法让图像移动到我想要的位置(并持续更新)?