Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 4 в JT1.main (JT1.java:11) - PullRequest
0 голосов
/ 05 сентября 2018
public static void main(String args[]){     
    String CopyArgs[] = new String[5];
    for(int i = 0; i < args.length; i++) {
       CopyArgs[i] = args[i];
    }
    for(int i = 0; i < 6;i++)
    System.out.println(CopyArgs[i]);        

Как я могу решить эту ошибку? Я уже пытался изменить <= на <, но это не помогло Exception. Появляется ли я введите ввод 3, 4 или 5 для args

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at JT1.main(JT1.java:11)

Ответы [ 3 ]

0 голосов
/ 05 сентября 2018

Вы пытаетесь получить CopyArgs[5], и у вас нет этого индекса.

Попробуйте изменить свой второй for цикл на:

for (int i = 0; i < CopyArgs.length; i++) {
    System.out.println(CopyArgs[i]); 
}

Другой простой способ печати массива:

System.out.println(Arrays.toString(CopyArgs));
0 голосов
/ 05 сентября 2018

Используйте System.arraycopy() для копирования массива.

Определение копии той же длины, что и оригинал:

String[] copyArgs[] = new String[args.length];

System.arraycopy( args, 0, copyArgs, 0, args.length );

используйте длину массива, а не фиксированное значение:

for(int i = 0; i < copyArgs.length;i++)
System.out.println(copyArgs[i]);       

Кстати: позаботьтесь о соглашениях об именах Java. имя переменной должно начинаться со строчной буквы

0 голосов
/ 05 сентября 2018

должно быть

for(int i = 0; i < CopyArgs.length;i++)
System.out.println(CopyArgs[i]);        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...