Java Can';无法理解数组错误

Java Can';无法理解数组错误,java,arrays,Java,Arrays,我刚刚阅读了AP Java书籍中的数组介绍部分,并尝试了以下示例,但我发现了一个错误,无法理解原因 代码: public static void arrayT(int i){ String[] alphabet = new String[5]; alphabet[0] = "a"; alphabet[1] = "c"; alphabet[2] = "x"; alphabet[3] = "b"; alphabet[4] = "d"; alphabet[5] = "e";

我刚刚阅读了AP Java书籍中的数组介绍部分,并尝试了以下示例,但我发现了一个错误,无法理解原因

代码:

public static void arrayT(int i){
  String[] alphabet = new String[5];
  alphabet[0] = "a";
  alphabet[1] = "c";
  alphabet[2] = "x";
  alphabet[3] = "b";
  alphabet[4] = "d";
  alphabet[5] = "e";
  System.out.println(alphabet[i]);
}
主要内容:

public static void main(String [] args){
  arrayT(2);
}
输出:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Main.arrayT(Main.java:18)
at Main.main(Main.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

我做错了什么?

字符串[]字母表=新字符串[5]创建一个长度为5的数组,也就是说它有索引0、1、2、3、4,其中正好有五个元素。您正在尝试访问索引5下不存在的元素。

String[]alphabet=新字符串[5]
创建一个长度为5的数组,也就是说它有索引0、1、2、3、4,其中正好有五个元素。您正在尝试访问索引5下不存在的元素

String[] alphabet = new String[5];
上面的语句分配一个容量为5的数组。有效索引为0、1、2、3和4

索引5超出范围。因此:

  alphabet[5] = "e";
抛出异常

上面的语句分配一个容量为5的数组。有效索引为0、1、2、3和4

索引5超出范围。因此:

  alphabet[5] = "e";

抛出异常。

定义的数组的长度为5,且字母表[5]=“e”您正在尝试将第6个元素添加到数组中。将legnth定义为6的数组

String[] alphabet = new String[6];
或者删除最后一行代码

alphabet[5] = "e"

定义的数组长度为5,且
字母表[5]=“e”您正在尝试将第6个元素添加到数组中。将legnth定义为6的数组

String[] alphabet = new String[6];
或者删除最后一行代码

alphabet[5] = "e"

这是因为您声明了长度为5的数组,但为其指定了6个值

字母表[5]=“e”;。这会导致“线程“main”java.lang.ArrayIndexOutOfBoundsException:5中出现异常”

尝试将数组的长度设置为6。然后你会得到正确的结果


String[]字母表=新字符串[6]

这是因为您声明了长度为5的数组,但为其指定了6个值

public static void arrayT(int i){
  String[] alphabet = new String[5];
  alphabet[0] = "a";
  alphabet[1] = "c";
  alphabet[2] = "x";
  alphabet[3] = "b";
  alphabet[4] = "d";
  alphabet[5] = "e";
  System.out.println(alphabet[i]);
}
字母表[5]=“e”;。这会导致“线程“main”java.lang.ArrayIndexOutOfBoundsException:5中出现异常”

尝试将数组的长度设置为6。然后你会得到正确的结果

String[]字母表=新字符串[6]

public static void arrayT(int i){
  String[] alphabet = new String[5];
  alphabet[0] = "a";
  alphabet[1] = "c";
  alphabet[2] = "x";
  alphabet[3] = "b";
  alphabet[4] = "d";
  alphabet[5] = "e";
  System.out.println(alphabet[i]);
}
在这个语句中,当您声明

 String[] alphabet = new String[5];
则ur字符串数组大小为5,即0-4(包括0,则可添加5个元素)

因此,必须将字符串数组的大小增加到6,以便添加6个元素

 String[] alphabet = new String[6];
在这个语句中,当您声明

 String[] alphabet = new String[5];
则ur字符串数组大小为5,即0-4(包括0,则可添加5个元素)

因此,必须将字符串数组的大小增加到6,以便添加6个元素

 String[] alphabet = new String[6];
请写“你”而不是“你”请写“你”而不是“你”