我使用eclipse(2019-12)进行Java编程。
当我使用任何输入在程序下运行时,它显示
线程“ main”中的异常java.lang.ArrayIndexOutOfBoundsException:索引0的长度为0超出范围
在Array.inputArr(Array.java:21)
在App1.main(App1.java:6)
我不知道问题出在哪里。
我的代码如下:
Array.java
package App;
import java.util.*;
class Array
{
int m, n;
Scanner reader=new Scanner(System.in);
void inputLen()
{
System.out.print("Please enter array row and column: ");
m=reader.nextInt();
n=reader.nextInt();
}
int[][] arr=new int[m][n];
int i, j;
void inputArr()
{
System.out.println("Please enter "+m+"*"+n+" array: ");
for(i=0; i<m; i++)
for(j=0; j<n; j++)
arr[i][j]=reader.nextInt();
}
void sumColumn()
{
int[] colSum=new int[n];
for(j=0; j<n; j++)
{
for(i=0; i<m; i++)
colSum[j]+=arr[i][j];
System.out.println("Column"+(j+1)+" sum="+colSum[j]);
}
}
}
App1.java
public class App1
{
public static void main(String[] args)
{
Array matrix=new Array();
matrix.inputLen();
matrix.inputArr();
matrix.sumColumn();
}
}
答案 0 :(得分:2)
创建矩阵时:Array matrix=new Array();
m和n等于0。
您的数组:
int[][] arr=new int[0][0];
尝试一下:
int[][] arr;
void inputLen()
{
System.out.print("Please enter array row and column: ");
m=reader.nextInt();
n=reader.nextInt();
arr = new int[m][n];
}