【问题标题】:Problem with exceptions and arrays异常和数组的问题
【发布时间】:2009-11-18 13:40:10
【问题描述】:

真的不明白这里出了什么问题?

这只是一个数组越界的简单异常。

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 个元素并使用第 6 个元素不存在且越界

标签: java arrays exception


【解决方案1】:

您应该在其声明中声明它能够处理 5 个项目,而不是 4 个。

new String [5];

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 啊所以我的数组太小了。我想知道这一点。
【解决方案3】:

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

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

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      您正在为一个四元素数组定义五个元素。 Java 使用从零开始的索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-13
        • 1970-01-01
        相关资源
        最近更新 更多