Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决错误“java.lang.ArrayIndexOutOfBoundsException:5”_Java_Arrays - Fatal编程技术网

如何解决错误“java.lang.ArrayIndexOutOfBoundsException:5”

如何解决错误“java.lang.ArrayIndexOutOfBoundsException:5”,java,arrays,Java,Arrays,我对编程一无所知,Java将是我的第一语言。我的所有代码都使用eclipse 我一直在研究数组,只是想了解它们。我发现这个网站: 我为他们的第一个代码示例制作了自己的变体: package testArray; public class TestArray { public static void main(String[] args) { // Declare a new array of integers int[] anArray; // Sets

我对编程一无所知,Java将是我的第一语言。我的所有代码都使用eclipse

我一直在研究数组,只是想了解它们。我发现这个网站:

我为他们的第一个代码示例制作了自己的变体:

package testArray;

public class TestArray
{
  public static void main(String[] args)
  {
     // Declare a new array of integers
     int[] anArray;

     // Sets the array length to 5
     anArray = new int[5];

     // Setting each array element
     anArray[0] = 1;
     anArray[1] = 2;
     anArray[2] = 3;
     anArray[3] = 4;
     anArray[5] = 5;

     // Displaying the value of each array element
     System.out.println("Element at index 0: " + anArray[0]);
     System.out.println("Element at index 0: " + anArray[1]);
     System.out.println("Element at index 0: " + anArray[2]);
     System.out.println("Element at index 0: " + anArray[3]);
     System.out.println("Element at index 0: " + anArray[4]);

  }
}
我在控制台中不断收到此错误:

主线程java.lang.ArrayIndexOutOfBoundsException中的异常:5 testArray.testArray.mainTestArray.java:15

我也尝试过使用他们网站上的代码,但收到了相同的错误。eclipse中没有设置某些内容对吗

非常感谢您的帮助

注意:如果有人有一些对初级程序员有用的网站,请继续添加到您的帖子中

问题是:

 anArray[5] = 5;
替换为:

 anArray[4] = 5;
由于您定义了大小为5的数组,因此只能使用0-4之间的索引:

 anArray = new int[5];
如果尝试访问4以上的任何索引,将遇到ArrayIndexOutOfBoundException

anArray[5] = 5;
实际上访问第6个元素,该元素不存在,因为数组是基于0的。新的int[5]包含5个元素,编号为0、1、2、3和4


所有索引都应小于数组长度。使用数组[4]=5;相反。

Java中的数组是基于0的,您已经创建了一个大小为5的数组

anArray[5]=5;超出了数组的范围,但看起来可能只是输入错误

你可能是想把

anArray[4]=5

也许你想要

package testArray;

public class TestArray
{
  public static void main(String[] args)
  {
     // Declare a new array of integers
     int[] anArray;

     // Sets the array length to 5
     anArray = new int[5];

     // Setting each array element
     anArray[0] = 1;
     anArray[1] = 2;
     anArray[2] = 3;
     anArray[3] = 4;
     anArray[4] = 5;

     // Displaying the value of each array element
     System.out.println("Element at index 0: " + anArray[0]);
     System.out.println("Element at index 1: " + anArray[1]);
     System.out.println("Element at index 2: " + anArray[2]);
     System.out.println("Element at index 3: " + anArray[3]);
     System.out.println("Element at index 4: " + anArray[4]);

  }
}

在几乎所有编程语言中,数组都是零索引的。@BrianRoach,Lua除外,只是为了完整起见。请仔细阅读您的教程。正如链接的第二段所述:编号从零开始……我认为新程序员因为在大多数情况下犯了很容易被指出的小错误而被否决是有点苛刻的。@JoshM harsh是主观的。网上有上千个论坛/站点可以发布我不懂编程的基础知识,无法阅读文档,并且我遇到了一个我无法在谷歌搜索的错误。SO的声明目的不是这些站点之一。是的,这有点苛刻:哦,我甚至不知道我怎么会错过它!谢谢你指出@badchiefy Np:-,如果我的回答有帮助,请接受。接受答案有助于其他人面对同样的问题。你可以点击我答案左边的勾号来接受。谢谢你的帮助!谢谢你的帮助@没问题。请勾选/勾选有帮助的答案,在这种情况下很可能是Juned Ahsan的答案。