无法真正理解这里出了什么问题?
这只是一个数组越界的简单例外。
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)
答案 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使用零基索引。