java.lang.ArrayIndexOutOfBoundsException: 0 В самой простой программе

1

Я новичок в Java. это только вторая программа, которую я пытался построить. Я попытался найти ответ в вопросах, связанных с предыдущим, но не мог, простите меня, если на это уже был дан ответ.

это программа:

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)
Теги:
arrays

4 ответа

1

Это исключение возникает, когда вы обращаетесь к элементу без существования. Для этой программы вам необходимо хотя бы передать 3 аргумента командной строки. Bcz вы использовали

Arg [0], Arg [1], Arg [2]

1

Если вы не передадите аргументы командной строки вашей программе, в массиве args ничего не будет. Перед доступом к массиву вы можете проверить, сколько аргументов вы фактически получили, например

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

Ну, у вас не было того, что на самом деле - это просто одно дело, которое печатает длину аргументов и видит длину и форму идеи.

что даст вам идею :)

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, тогда u получит ваши ans :)

0

Вы должны добавить строковые значения для arg [] при запуске кода:

java UseThree name1 name2 name3

name1 относится к arg [0], name2 к arg [1] и name3 к arg [2].

Ещё вопросы

Сообщество Overcoder
Наверх
Меню