如何在java中清除输入缓冲区

时间:2015-06-22 16:58:20

标签: java buffer

用于避免在控制台中输入的任何不需要的字符,例如 \ n

我们使用 nextInt() nextLine()等。

但是在这些情况下,实际上控制是向前迈出一步,留下不需要的字符串或类似的东西。 但我想删除或清除缓冲区的内存,其中系统会采取其他不需要的数据。 例如 - >

Scanner scan=new Scanner(System.in);
scan.nextInt();
scan.nextline();//this statement will be skipped

因为系统将 \ n 作为输入的整数旁边的一行。 在这种情况下,不使用 scan.nextLine(),我想简单地清除/清除存储 \ n 的缓冲存储器。 现在请告诉我如何删除java中的输入缓冲区内存

谢谢。 :)

1 个答案:

答案 0 :(得分:2)

您可以使用它来清除缓冲区中的所有现有数据:

while(sc.hasNext()) {
    sc.next();
}

如果您只是这样做以从输入中删除换行符(\ n),您可以使用:

while(sc.hasNext("\n")) {
    sc.next();
}

如果目标只是读取整数并跳过任何其他字符,那么这将起作用:

while(sc.hasNext() && !sc.hasNextInt()) {
    sc.next();
}