打印阵列/反向阵列

a12*_*c34 5 java printing arrays indexoutofboundsexception

所以我对打印数组有疑问.这些方法从文件创建的数组中接收数据.由于文件中包含的整数很多,因此每行输出应为10个整数.假设文件包含{0,1,2,3,4,5},输出应为:

0   1   2   3   4   5
Run Code Online (Sandbox Code Playgroud)

第一种方法完全正常.第二种方法返回一个错误,我将在下面包含这个错误.任何人都可以帮我弄清楚什么是错的?我试过谷歌搜索但仍然不明白.这是代码:

public static void printArray(int[] array){
            System.out.println("Printing array: ");
            for (int i = 1; i<array.length+1; i++){
                    System.out.printf("%7d", array[i-1]);
                    if (i%10==0){
                            System.out.println();
                    }

            }
            System.out.println();
}
public static void reverseArray(int[] array){
            System.out.println("Printing reversed array: ");
            int a=0;
            for (int i = array.length; i>-1; i--){
                    System.out.printf("%7d", array[i]);
                    a++;
                    if (a%10==0){
                            System.out.println();
                    }
            }
            System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

这是错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
    at Paniagua_ArrayProcessing.reverseArray(Paniagua_ArrayProcessing.java:49)
    at Paniagua_ArrayProcessing.main(Paniagua_ArrayProcessing.java:8)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!希望这只是一个简单的问题.

编辑:这是在java顺便说一句.

dur*_*597 3

一个数组从0length-1。将您的代码更改为:

for (int i = array.length-1; i>-1; i--){
Run Code Online (Sandbox Code Playgroud)

并且代码会起作用。

您可以在这里阅读更多相关内容:Java 语言基础知识:数组