Java - java.lang.ArrayIndexOutOfBoundsException

时间:2012-11-27 19:00:29

标签: java arrays

我正在尝试运行我的代码并且它说明了异常:

java.lang.ArrayIndexOutOfBoundsException

我用google搜索它,据我所知,当我尝试访问一个负数或大于数组长度的索引时会发生这种情况。 但我似乎无法找到问题,这是我的代码:http://pastebin.com/sXsBbYfh

感谢任何帮助者。

编辑:错误消息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Calculator.addOne(Calculator.java:127)
at Calculator.add(Calculator.java:88)
at Program.main(Program.java:8)

关于代码的相关部分,我不知道,这就是我要来找你的原因。

2 个答案:

答案 0 :(得分:3)

问题似乎是第86行

  arrResult = this.addOne(arrResult.length);

数组索引是基于0的,所以0 - 长度为1并且您正在传入长度,然后使用它来访问第127行上的数组

  switch(arrResult[arrayIndex])

答案 1 :(得分:0)

这部分代码:

public int[] addOne(int arrayIndex)

 124.
        {

 125.
                switch(arrResult[arrayIndex])

 126.
                {

 127.
                        case 0:

 128.
                                arrResult[arrayIndex] = 1;

是错误来源。

请注意。

在java中,数组索引范围从0到length-1

在上面的代码中,当调用方法addon()时,您将数组长度作为参数传递,并且在上面的代码中,您尝试访问不存在的array[length]因此异常。因此,您可能希望保留length-1

在以下代码行#86

    arrResult = this.addOne(arrResult.length);

您的代码中存在许多逻辑错误。这只是抛出你提到的异常的那个