线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:索引0超出长度0的范围

时间:2020-02-29 08:41:58

标签: java

我使用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();
    }
}

1 个答案:

答案 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];
    }