使用扫描仪输入类处理可变数量的参数

时间:2017-09-14 20:30:03

标签: java arrays java.util.scanner

使用扫描仪输入时,我们可以使用var .. args sc.nextInt() ?? 例如..(代码下方)

import java.util.Scanner;
class Sample
{
public static void run(int... args){
    System.out.println(args[1]);
    }
public static void main(String args[])
{
    Scanner sc = new Scanner(System.in);
    System.out.println("please enter values: ");
    int values = sc.nextInt();
    run(values);
}

}

输出是ArrayIndexOutOfBoundsException:1可以解释一下这个...

3 个答案:

答案 0 :(得分:3)

values只是一个变量,因此args的长度为1,这意味着唯一有效的索引是0(数组是从零开始的实体)

答案 1 :(得分:1)

您的数组大小为1并尝试访问第二个值,因此请使用下面的代码。我已从args[1]更改为args[0]

当我们尝试访问数组中不存在的索引值时出现

ArrayIndexOutOfBoundsException,不仅对于整数数组而且对于所有类型的数组。

    import java.util.Scanner;
class Sample
{
public static void run(int... args){
    System.out.println(args[0]);
    }
public static void main(String args[])
{
    Scanner sc = new Scanner(System.in);
    System.out.println("please enter values: ");
    int values = sc.nextInt();
    run(values);
}

}

答案 2 :(得分:0)

使用args [0]代替args [1],因为你的值存储在