Проблема с исключениями и массивами - PullRequest
0 голосов
/ 18 ноября 2009

Неужели не могу понять, что здесь происходит не так?

Это просто простое исключение с массивом за пределами.

public class Days
{
    public static void main (String args[])
    {
        String[] dayArray = new String [4];
        {
            dayArray [0] = "monday";
            dayArray [1] = "tuesday";
            dayArray [2] = "wednesday";
            dayArray [3] = "Thursday";
            dayArray [4] = "Friday";

            try
            {
                System.out.println("The day is " + dayArray[5]);
            }
            catch(ArrayIndexOutOfBoundsException Q)
            {
                System.out.println(" invalid");
                Q.getStackTrace();
            }
            System.out.println("End Of Program");
        }
    }
}

У кого-нибудь есть идеи, почему это не сработает? Я получаю сообщение об ошибке:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
    at Days.main(Days.java:14)

Ответы [ 5 ]

7 голосов
/ 18 ноября 2009

Вы должны объявить его способным к 5 пунктам, а не 4, в его объявлении.

new String [5];
2 голосов
/ 18 ноября 2009

При необходимости, пусть компилятор сделает подсчет за вас:

String[] dayArray = {
  "Monday",
  "Tuesday",
  "Wednesday",
  "Thursday",
  "Friday",
};

Таким образом, вы можете добавлять или удалять элементы, не изменяя длину массива в другом месте. Меньше печатать тоже.

2 голосов
/ 18 ноября 2009

Массив ограничен при создании. В вашем примере он имеет размер 4 поля.
С 0-индексированным массивом это означает, что вы можете получить доступ к этим полям, а не к:

dayArray [0] = "monday";
dayArray [1] = "tuesday";
dayArray [2] = "wednesday";
dayArray [3] = "Thursday";
0 голосов
/ 18 ноября 2009

Вы определяете пять элементов для массива из четырех элементов. Java использует нулевые индексы.

0 голосов
/ 18 ноября 2009

Ваш массив имеет размер 4, и вы добавляете 5 элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...