有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

我一直在研究数组,只是想了解它们。我找到了这个网站:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

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

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]);

  }
}

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

线程“main”java中出现异常。lang.ArrayIndexOutofBounds异常:5 在testArray。泰斯特雷。main(TestArray.java:15)

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

非常感谢您的帮助

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


共 (4) 个答案

  1. # 1 楼答案

    也许你想要

    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]);
    
      }
    }
    
  2. # 2 楼答案

    问题是:

     anArray[5] = 5;
    

    替换为:

     anArray[4] = 5;
    

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

     anArray = new int[5];
    

    如果试图访问任何高于4的索引,将遇到ArrayIndexOutOfBoundException

  3. # 3 楼答案

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

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

    你可能是想

    anArray[4]=5

  4. # 4 楼答案

    anArray[5] = 5;
    

    实际上访问第6个元素,因为数组是基于0的,所以它不存在new int[5]包含5个元素,编号为0、1、2、3和4

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