加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何安全地扫描整数输入?

发布时间:2020-05-24 05:02:00 所属栏目:Java 来源:互联网
导读:参见英文答案 How to use Scanner to accept only valid int as input6个How to handle infinite loop caused by invalid input (InputMism

参见英文答案 > How to use Scanner to accept only valid int as input6个
>How to handle infinite loop caused by invalid input (InputMismatchException) using Scanner5个

Scanner scanner = new Scanner();
int number = 1;

do
{
    try
    {
        option = scanner.nextInt();
    }
    catch (InputMismatchException exception)
    {
        System.out.println("Integers only,please.");
    }
}
while (number != 0);

尽管存在异常处理,但在给出非整数输入时,此代码将进入无限循环.它不再是Scanner在下一次迭代中暂停收集输入,而是继续抛出InputMismatchExceptions直到程序被终止.

扫描整数(或其他类型,我猜)输入,丢弃无效输入并正常继续循环的最佳方法是什么?

最佳答案 在尝试将输入值分配给int之前,应检查输入是否可以解析为int.您不应该使用异常来确定输入是否正确,这是不好的做法,应该避免.

if(scanner.hasNextInt()){
   option = scanner.nextInt();
}else{
   System.out.printLn("your message");
}

这样,您可以检查输入是否可以解释为int,如果是,则分配值,如果不显示消息.调用该方法不会使扫描仪前进.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读