使用户只在扫描程序Java中输入整数

时间:2016-09-04 11:51:46

标签: java input integer

我在这里遇到了一些问题。 我想用户只能输入整数。我尝试了很多代码,但仍然无法正常工作。顺便说一句,这是我的代码

import java.util.Scanner;

public class test { 
  public static void main (String []args){
    Scanner scan = new Scanner(System.in);
    int number = scan.nextInt();
  }
}

出现错误时,消息将显示为

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at test.main(test.java:6)

请帮助我(初级程序员);

3 个答案:

答案 0 :(得分:1)

 A = [[1,1,1],[2,1,1]]
 B =[[[1,2,3],[2,2,2]],[[1,1,2],[1,1,1]]]
 result = apply_some_function(A,B)
 >> result = [[[6,7],[6,8]],
             [[4,5],[3,4]]]

此代码将检查输入是否为整数,如果是,则它将继续。

答案 1 :(得分:0)

试试这个:

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.print("Enter a number -> ");
            String input = sc.next();
            int intInputValue = 0;
            try {
                intInputValue = Integer.parseInt(input);
                break;
            } catch (NumberFormatException ne) {
                System.out.println("This is not a number");
            }
        }
    }

当用户输入整数输入值时,该程序将结束。

输出

enter image description here

答案 2 :(得分:0)

只有当用户没有输入整数时才会出现这样的错误。对于这种情况,你可以创建一个try-catch块来捕获异常,如下所示:

String input = sc.next();
int number = 0;
try {
   number = Integer.valueOf(input);
} catch (NumberFormatException ne) {
   System.out.println("Invalid input!");
}

要进一步优化解决方案,请将其全部置于循环中,并在try-block中突破它,并在用户输入错误号码时继续轮询输入。