首页 > 解决方案 > 如何验证在整数数据类型中输入的非整数?

问题描述

我必须建立一个有待购买物品的商店。选择商品后,我提示用户输入他们想要购买的商品的数量。

// 'input' is my Scanner object
int quantity;
quantity = input.nextInt();

如果用户输入一个非整数(即十进制,字符...),它会中断程序。有没有办法验证这个非整数输入?

谢谢

标签: javavalidation

解决方案


当然,接受 String 值而不是 int,检查您是否可以将该 String 值解析为 int,如果可以,然后这样做。如果不是,则发送一条消息,说明输入的值必须是数字。

这可以在一个while循环中完成。

import java.util.Scanner;

public class ScannerInputInt {

    public static void main(String... args) {

        Scanner in = new Scanner(System.in);

        Integer input = null;

        do {

            System.out.println("Please enter number: ");

            String s = in.nextLine();

            try {

                input = Integer.parseInt(s);

            } catch (NumberFormatException e) {

                System.out.println("ERROR: " + s + " is not a number.");
            }

        } while (input == null);
    }
}

推荐阅读