Java-Java.lang.ArrayIndexOutOfBoundsException
我正在尝试运行我的代码,它显示了有关异常的信息:Java-Java.lang.ArrayIndexOutOfBoundsException,java,arrays,Java,Arrays,我正在尝试运行我的代码,它显示了有关异常的信息: java.lang.ArrayIndexOutOfBoundsException 我在谷歌上搜索了它,据我所知,当我试图访问一个负的或大于数组长度的索引时,会发生这种情况。 但我似乎找不到问题所在,以下是我的代码: 谢谢你的帮助 编辑:错误消息: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at Calculator.addOne(Calculat
java.lang.ArrayIndexOutOfBoundsException
我在谷歌上搜索了它,据我所知,当我试图访问一个负的或大于数组长度的索引时,会发生这种情况。
但我似乎找不到问题所在,以下是我的代码:
谢谢你的帮助
编辑:错误消息:
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)
关于代码的相关部分,我不知道,这就是我来找您的原因。问题似乎与第86行有关
arrResult = this.addOne(arrResult.length);
数组索引是基于0的,所以0-length-1,您传入length,然后使用它访问第127行的数组
switch(arrResult[arrayIndex])
问题似乎与第86行有关
arrResult = this.addOne(arrResult.length);
数组索引是基于0的,所以0-length-1,您传入length,然后使用它访问第127行的数组
switch(arrResult[arrayIndex])
本部分代码:
public int[] addOne(int arrayIndex)
124.
{
125.
switch(arrResult[arrayIndex])
126.
{
127.
case 0:
128.
arrResult[arrayIndex] = 1;
这是错误的根源
请注意
在java中,数组索引的范围从0到长度-1
在上面的代码中,当调用方法addon()
时,您将数组长度作为参数传递,在上面的代码中,您试图访问不存在的array[length]
,因此出现异常。因此,您可能希望保持length-1
在下面的代码行中#86
代码中有很多逻辑错误。这正是引发您提到的异常的部分这部分代码:
public int[] addOne(int arrayIndex)
124.
{
125.
switch(arrResult[arrayIndex])
126.
{
127.
case 0:
128.
arrResult[arrayIndex] = 1;
这是错误的根源
请注意
在java中,数组索引的范围从0到长度-1
在上面的代码中,当调用方法addon()
时,您将数组长度作为参数传递,在上面的代码中,您试图访问不存在的array[length]
,因此出现异常。因此,您可能希望保持length-1
在下面的代码行中#86
代码中有很多逻辑错误。这就是引发您提到的异常的那一个您能在这里发布代码的相关部分以及堆栈跟踪吗?请。您可以发布有关此异常的stackTrace吗?:异常引发的代码行是哪一行?您可以发布给出异常的代码行吗。另外,当您发布问题时,请在问题正文中发布必要的代码片段,以供将来参考。谢谢。嗯,代码中有很多逻辑错误。但是引发异常的是-
this.addOne(arresult.length)
,在这里传递数组的长度,并将其用作addOne
方法中的index
。将此调用更改为-this.addOne(arresult.length-
);`。请注意,这并不能解决所有问题。我没有勇气把每个问题都写在这里。你能把代码的相关部分和堆栈跟踪一起发布在这里吗?请。您可以发布有关此异常的stackTrace吗?:异常引发的代码行是哪一行?您可以发布给出异常的代码行吗。另外,当您发布问题时,请在问题正文中发布必要的代码片段,以供将来参考。谢谢。嗯,代码中有很多逻辑错误。但是引发异常的是-this.addOne(arresult.length)
,在这里传递数组的长度,并将其用作addOne
方法中的index
。将此调用更改为-this.addOne(arresult.length-
);`。请注意,这并不能解决所有问题。我没有勇气把这里的每一个问题都说出来。