java.lang.ArrayIndexOutOfBoundsException:0在最简单的程序中

时间:2014-03-15 11:49:26

标签: java arrays

我是Java的新手。这只是我试图构建的第二个程序。 我试图在prevoius问题中找到答案,但不能,如果已经回答了,请原谅我。

这是该计划:

public class UseThree {

    public static void main(String[] args) {
        System.out.print("Hi, ");
        System.out.print(args[2]);
        System.out.print(", ");
        System.out.print(args[1]);
        System.out.print(", and ");
        System.out.print(args[0]);
        System.out.println(".");
    }
}

有人可以告诉我为什么我不能这样做?

它显示的问题是:

run UseThree

java.lang.ArrayIndexOutOfBoundsException: 0

    at UseThree.main(UseThree.java:7)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

4 个答案:

答案 0 :(得分:1)

如果未向程序传递任何命令行参数,则args数组中不会包含任何内容。在访问数组之前,您可以检查实际收到的参数数量,例如

public static void main(String[] args) {
    System.out.println("received " + args.length  + " arguments");
}

答案 1 :(得分:1)

当您访问不存在的元素时会发生此异常。对于此程序,您至少需要传递3个命令行参数。 Bcz你用过

ARG [0],则arg [1],则arg [2]

答案 2 :(得分:0)

运行以下代码时,必须为arg []添加字符串值:

java UseThree name1 name2 name3

name1属于arg [0],name2属于arg [1],name3属于arg [2]。

答案 3 :(得分:0)

嗯,你没有得到什么实际的东西只是做一件事打印args的长度,看到长度,并获得想法形式。

这会给你一个想法:)

public class TestingProject {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.print("Hello,HiHow,you");
        System.out.println("Hello1"+"Hi1"+"How1"+"you1");
        System.out.println(args.length);

    }

}

记住什么是@param args然后你会得到你的ans:)