Java 索引数组超出界限I不';我不知道为什么请帮忙

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

对不起,我是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]);
        }
    }   
为什么不是从一开始


谢谢,因为
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]);
    }
}