如何验证用户是否在Java中输入整数或字母字符?

时间:2011-11-19 05:00:01

标签: java

我接受来自用户的输入作为使用Scanner.nextInt()的整数。如何验证他输入的是整数,而不是字母字符?

6 个答案:

答案 0 :(得分:2)

如果输入不是int,nextInt()方法将抛出InputMismatchException。因此,您可以捕获该异常并执行条件操作。或者,签出hasNextInt()将返回一个布尔值,指示下一个值是否为int。

if (scanner.hasNextInt()) {
  int i = scanner.nextInt();
} else {
  System.out.println("Not an int");
}

答案 1 :(得分:1)

将它包裹在try / catch中。请参阅this帖子。

try {

      num = reader.nextInt();


    } catch (InputMismatchException e) {
         System.out.println("Invalid value!");
} 

另外,如果你注意到,在帖子中这将被包装在一个循环中,直到输入一个有效的整数。

答案 2 :(得分:1)

如果未输入int作为输入,则会抛出异常。只需捕获该异常,现在您知道用户输入了一个不可解析的值。

Scanner.nextInt()

答案 3 :(得分:1)

如果用户输入字母表并且您希望使用int,则可以使用Scanner.hasNextInt()测试int,如果为false,则向用户发送消息。

答案 4 :(得分:1)

Scanner input = new Scanner(System.in);
int i;
System.out.print("Insert an integer number: ");

while(true)
{
    try
    {
        i = input.nextInt();
        break;
    }
    catch(InputMismatchException e)
    {
        System.out.print("You have to insert an integer number, try again: ");
    }
}

答案 5 :(得分:0)

如果有异常,如果它不是int,我猜你可以使用try catch块。

try {
    int aInt = new Scanner(System.in).nextInt();
}  catch (InputMismatchException e) {
    //handler-code
}