异常和数组的问题

时间:2009-11-18 13:40:10

标签: java arrays exception

无法真正理解这里出了什么问题?

这只是一个数组越界的简单例外。

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 个答案:

答案 0 :(得分:7)

你应该在声明中声明它有5个而不是4个。

new String [5];

答案 1 :(得分:2)

数组在创建时受到限制。在您的示例中,它的大小为4个字段 使用0索引数组意味着您可以访问这些字段,而不再是:

dayArray [0] = "monday";
dayArray [1] = "tuesday";
dayArray [2] = "wednesday";
dayArray [3] = "Thursday";

答案 2 :(得分:2)

在适当的时候,让编译器为你做计数:

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

这样,您可以添加或删除元素,而无需在其他位置更改数组长度。减少打字。

答案 3 :(得分:0)

您的数组大小为4,并且您要添加5个元素。

答案 4 :(得分:0)

您为四元素数组定义了五个元素。 Java使用零基索引。