首页 文章

使用Integer.parseInt(args [0])时为什么会出现Exception? [重复]

提问于
浏览
-1

这个问题在这里已有答案:

我通过以下代码得到以下异常:

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0在Subset2.main(Subset2.java:13)

import java.util.Scanner;
import static java.lang.Integer.parseInt;

public class Subset2 {

    @SuppressWarnings("resource")     
    public static void main(String[] args) {

        RandomizedQueue<String> s = new RandomizedQueue<String>();

        Scanner input = new Scanner(System.in);  //my input line will be in input(Scanner)

        int k = Integer.parseInt(args[0]);  //first read k(how many times to start removing

        while(input.hasNext()) {
            s.enqueue(input.next());
        }

        while(k-->0) {
            System.out.println(s.remove());             //removing k random nodes
        }
    }

2 回答

  • 1

    因为您需要通过一些输入来调用您的程序:

    java -cp . Subset2 1212
    

    这是 java 命令的最小用法 .

    1212 - 以及其他参数 - 是JVM将在 args 数组中传递给您的程序的内容 . 它相当于以这种方式调用你的方法:

    Subset2.main(new String[] {"1212"});
    
  • 0

    args[0] 将尝试获取作为main方法的参数传递的值的第一个索引 .

    如果你没有向你的程序传递任何参数,那么 args[] 将为空,因此访问任何索引将抛出 ArrayIndexOutOfBoundsException .

相关问题