java - 如何循环用户输入直到输入整数?

标签 java input exception

我是 Java 新手,我想继续请求用户输入,直到用户输入整数,这样就不会出现 InputMismatchException。我已经尝试过这段代码,但当我输入非整数值时仍然出现异常。

int getInt(String prompt){
        System.out.print(prompt);
        Scanner sc = new Scanner(System.in);
        while(!sc.hasNextInt()){
            System.out.println("Enter a whole number.");
            sc.nextInt();
        }
        return sc.nextInt();
}

感谢您的宝贵时间!

最佳答案

使用 next 而不是 nextInt 获取输入。放置一个 try catch 以使用 parseInt 方法解析输入。如果解析成功则中断 while 循环,否则继续。 试试这个:

        System.out.print("input");
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("Enter a whole number.");
            String input = sc.next();
            int intInputValue = 0;
            try {
                intInputValue = Integer.parseInt(input);
                System.out.println("Correct input, exit");
                break;
            } catch (NumberFormatException ne) {
                System.out.println("Input is not a number, continue");
            }
        }

关于java - 如何循环用户输入直到输入整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974719/

相关文章:

java - 如何可靠地检测任务队列中的代码是否正在执行?

php - 从 Laravel 4 输入生成新数组

c# - 下载大文件,保存在数据库中

java - 在我的以下程序中摆脱 java.lang.NullPointerException

Java:异常帮助 Char 和 Int

java - 自动视频快照

java - 连接非实体类中的两个实体

java - 使用 Java 进行 XML 解析(JAXB 和根元素)

javascript - 使用 HTML 实体设置元素值

java - 我如何将一组信息(以用户定义的数据类型)添加到java中的数组中