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顺便说一句.
一个数组从0到length-1。将您的代码更改为:
for (int i = array.length-1; i>-1; i--){
Run Code Online (Sandbox Code Playgroud)
并且代码会起作用。
您可以在这里阅读更多相关内容:Java 语言基础知识:数组