Problem with exceptions and arrays
Can't really understand what's going wrong here?
It's just a simple exception with an array out of bounds.
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] = "Th开发者_如何学JAVAursday";
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");
}
}
}
Does anybody have any ideas as too why this won't run? I'm getting the error:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Days.main(Days.java:14)
You should declare it as capable of 5 items, not 4, in its declaration.
new String [5];
Array are limited on creation. In your example, it has a size of 4 fields.
With a 0-indexed array it means you can access these fields, not any more:
dayArray [0] = "monday";
dayArray [1] = "tuesday";
dayArray [2] = "wednesday";
dayArray [3] = "Thursday";
When appropriate, let the compiler do the counting for you:
String[] dayArray = {
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
};
This way, you can add or remove elements without having to change the array length in another place. Less typing, too.
You array has a size of 4, and you are adding 5 elements.
You're defining five elements for a four element array. Java uses zero based indexes.
精彩评论