Java Can';无法理解数组错误
我刚刚阅读了AP Java书籍中的数组介绍部分,并尝试了以下示例,但我发现了一个错误,无法理解原因 代码: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";
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];
请写“你”而不是“你”请写“你”而不是“你”