用于避免在控制台中输入任何不需要的字符,如**\n**
我们使用nextInt()或nextLine()等。
但是在这些情况下,实际上控件会提前一步,留下不需要的字符串或类似的东西,但是我想删除或清除buffer的内存,系统会在其中获取其他不需要的数据,例如--〉
Scanner scan=new Scanner(System.in);
scan.nextInt();
scan.nextline();//this statement will be skipped
因为系统将**\n作为输入整数旁边的一行。在这种情况下,不使用scan.nextLine()我只想清除/刷新存储\n的缓冲区内存。现在请告诉我如何在java中删除输入缓冲区内存**
谢谢你。:)
2条答案
按热度按时间3hvapo4f1#
您可以使用此命令清除缓冲区中的所有现有数据:
如果执行此操作只是为了从输入中删除换行符(\n),则可以用途:
如果目标是只读取整数并跳过任何其他字符,则可以这样做:
j91ykkif2#
在将字符串作为输入之前,您可以简单地使用多一个
scan.nextLine()
。参考:the solution to this hackerrank question uses the same idea which I provided