Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过验证用户';s的输入仅仅是数字?_Java_Arrays - Fatal编程技术网

Java 如何通过验证用户';s的输入仅仅是数字?

Java 如何通过验证用户';s的输入仅仅是数字?,java,arrays,Java,Arrays,我试图向数组中添加3个元素,但我希望确保用户的输入仅为数字。到目前为止,我有一个for循环,允许用户输入3个数字,如果用户输入的不是数字,我会减去1,所以我仍然确保只得到3个数字。运行代码后,我得到一个异常错误(线程“main”java.util.InputMismatchException中的异常)。请有人告诉我我做错了什么。提前谢谢你 int[] arr = new int[3]; for (int i = 0 ; i < arr.length ; i++) {

我试图向数组中添加3个元素,但我希望确保用户的输入仅为数字。到目前为止,我有一个for循环,允许用户输入3个数字,如果用户输入的不是数字,我会减去1,所以我仍然确保只得到3个数字。运行代码后,我得到一个异常错误(线程“main”java.util.InputMismatchException中的异常)。请有人告诉我我做错了什么。提前谢谢你

     int[] arr = new int[3];

     for (int i = 0 ; i < arr.length ; i++) {
            try
            {
               System.out.println("Please enter a number: ");
               arr[i] = scan.nextInt();
            }
            catch(Exception ex)
            {
                i--;
               System.out.println("Please enter a valid number");
               arr[i] = scan.nextInt();
            }
        }
int[]arr=newint[3];
对于(int i=0;i
当下一个令牌不是
int
时,调用
scan.nextInt()
将不会使用该令牌。相反,您应该通过调用
scan.next()
(在
catch
块中)来使用非
int
。大概

for (int i = 0; i < arr.length; i++) {
    try {
        System.out.printf("Please enter a number for arr[%d]:%n", i);
        arr[i] = scan.nextInt();
    } catch (Exception ex) {
        i--;
        System.out.printf("%s is not a number.%n", scan.next());
    }
}
for(int i=0;i
用于检查下一个令牌是否为int。 请参阅以下代码:

for (int i = 0; i < arr.length; i++) {
    try {
        System.out.printf("Please enter a number: ");
        if(scan.hasNextInt()){
            arr[i] = scan.nextInt();
        }else{
           i--;
           System.out.println(scan.next() + " is not a number.", );
         }
    } catch (Exception ex) {
    }
}
for(int i=0;i
您的输入是什么?我喜欢您使用arr[%d]来定位每个数字的方式。谢谢!!