console清空缓冲区,如何清除Java中的输入缓冲区

For avoiding any unwanted character which has been entered in console like \n

we use nextInt() or nextLine() etc.

But in these cases actually the control is going a step ahead leaving the unwanted string or something like this.

But I want to delete or flush out the memory of buffer in which other unwanted data is taken by the system.

For example -->

Scanner scan=new Scanner(System.in);

scan.nextInt();

scan.nextline();//this statement will be skipped

because the system is taking \n as a line next to the integer given as input.

In this case without using scan.nextLine() I want to simply clear/flush out the buffer memory where the \n was stored.

Now please tell me how to delete the input buffer memory in java

Thank you. :)

解决方案

You can use this to clear all existing data in the buffer:

while(sc.hasNext()) {

sc.next();

}

If you are only doing this to remove the newline (\n) characters from the input, you can use:

while(sc.hasNext("\n")) {

sc.next();

}

If the goal is to only read integers and skip any other characters, this would work:

while(sc.hasNext() && !sc.hasNextInt()) {

sc.next();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值