ArrayIndexOutOfBoundsException:0错误

时间:2017-02-04 07:09:31

标签: java arrays

我的数组有一个不固定的大小,因为它取决于输入的模块数量的用户输入所以我真的不知道当我运行此代码时该怎么做并得到此错误:ArrayIndexOutOfBoundsException:0

    Module[] array = new Module[moduleno];
    String[] a = new String[moduleno];
    String[] b = new String[moduleno];
    int[] c = new int[moduleno];
    String[] Output = new String[moduleno];
    String endoutput="";

  //Method for input of number of modules
     moduleno = Student.modno();

     for (int i = 0; i < moduleno; i++) {

            modulename = Student.MakingModName(i);
            grade = Student.readGrade(i);
            cu = Student.readCredits(i);
            value = Student.GradeValue(grade);
            score = Student.calculateScore(value, cu);
            totalScore += score;
            totalCu += cu;
            GPA = Student.calculateGPA(totalCu, totalScore);

             //Error occurs here.
            **array[i] = new Module(modulename,grade,cu);**
            a[i] = array[i].getModulename();

            b[i] = array[i].getGrade();
            c[i] = array[i].getCu();


            Output[i] = a[i] + "                " +b[i]+"             " +c[i]+"              ";
            endoutput = endoutput + Output[i] + "\n";
        }

3 个答案:

答案 0 :(得分:4)

这一系列陈述:

<form action="insert_product.php" method="post" enctype="multipart/form-data">

不会神奇地调整之前分配的数组的大小。你需要反过来做这件事:

substr

答案 1 :(得分:1)

移动声明

Fat

在初始化数组之前。

答案 2 :(得分:0)

//Add This line before initialize your array
**moduleno = Student.modno();**

Module[] array = new Module[moduleno];
String[] a = new String[moduleno];
String[] b = new String[moduleno];
int[] c = new int[moduleno];
String[] Output = new String[moduleno];
String endoutput="";

原因: 默认情况下, moduleno 变量包含0(零)大小,因此您的所有数组大小也为0(零)。

并且您尝试在数组中添加1个元素,但是数组的大小为零,因此它给出了ArrayIndexOutBoundsException。