Java 索引数组超出界限I不';我不知道为什么请帮忙
对不起,我是java的新手。我的节目Java 索引数组超出界限I不';我不知道为什么请帮忙,java,Java,对不起,我是java的新手。我的节目 public static void main(String[] args) { String mystring = "abcdefgh"; char[] mychars = mystring.toCharArray(); for(int i=0;i<mychars.length;i++){ System.out.println(mychars[i+1]);
public static void main(String[] args) {
String mystring = "abcdefgh";
char[] mychars = mystring.toCharArray();
for(int i=0;i<mychars.length;i++){
System.out.println(mychars[i+1]);
}
}
为什么不是从一开始
谢谢,因为
System.out.println(mychars[i+1])当i
位于数组中的最后一个索引时,code>位于数组的边界之外
正是i+1
部分导致了异常,因为Java开始将索引计数为0。用简单的i替换代码中的1+i,它就会工作。像这样:
public static void main(String[] args) {
String mystring = "abcdefgh";
char[] mychars = mystring.toCharArray();
for(int i=0;i<mychars.length;i++){
System.out.println(mychars[i]);
}
}
publicstaticvoidmain(字符串[]args){
字符串mystring=“abcdefgh”;
char[]mychars=mystring.toCharArray();
对于(inti=0;i------>mychars[i+1]
------>[i+1]
------>+1
计算机科学中有两个复杂的问题:1)缓存失效,2)命名,3)被一个错误关闭。两个问题都是因为任何Java数组的第一个元素都被索引为0而发生的。因此mychars[0]
是a
,myChars[1]
是b
,依此类推。
public static void main(String[] args) {
String mystring = "abcdefgh";
char[] mychars = mystring.toCharArray();
for(int i=0;i<mychars.length;i++){
System.out.println(mychars[i]);
}
}