用于避免在控制台中输入的任何不需要的字符,例如 \ n
我们使用 nextInt()或 nextLine()等。
但是在这些情况下,实际上控制是向前迈出一步,留下不需要的字符串或类似的东西。 但我想删除或清除缓冲区的内存,其中系统会采取其他不需要的数据。 例如 - >
Scanner scan=new Scanner(System.in);
scan.nextInt();
scan.nextline();//this statement will be skipped
因为系统将 \ n 作为输入的整数旁边的一行。 在这种情况下,不使用 scan.nextLine(),我想简单地清除/清除存储 \ n 的缓冲存储器。 现在请告诉我如何删除java中的输入缓冲区内存
谢谢。 :)
答案 0 :(得分:2)
您可以使用它来清除缓冲区中的所有现有数据:
while(sc.hasNext()) {
sc.next();
}
如果您只是这样做以从输入中删除换行符(\ n),您可以使用:
while(sc.hasNext("\n")) {
sc.next();
}
如果目标只是读取整数并跳过任何其他字符,那么这将起作用:
while(sc.hasNext() && !sc.hasNextInt()) {
sc.next();
}