0

これは大学の課題 (サンプルの学術レポート) です。完了して提出しようと思っていましたが、テストを開始すると... メインの 60 行目で ArrayIndexOutOfBoundsException を受け取り続け、その理由がわかりません。私はJavaを初めて使用しますが、このプログラムには本当に多くの時間を費やしています。どんな助け/アドバイスも大歓迎です。60 行目 = "int クレジット = Integer.parseInt(input[1]);" //エラーはデータ型に起因すると考えていますか??? 道に迷いました。

Course / Grade / Reportクラスはデータをメインのjava2pgm1に渡します

4

4 に答える 4

0
String[] input = course.split(":");
int credits = Integer.parseInt(input[1]);
Integer term = Integer.parseInt(input[3]);
Course cObject = new Course(input[0],credits,input[2],input[3]);

メインの上記のスニペットは、course文字列に abc:def:ghi:jkl 少なくとも 3 つの「:」があることを常に想定しています。文字列に「:」が 3 つ含まれていない場合は、常にエラー ケースを処理することをお勧めします。コードを次のように変更します

String[] input = course.split(":");
if(input.length == 4)
{
    int credits = Integer.parseInt(input[1]);
    Integer term = Integer.parseInt(input[3]);
    Course cObject = new Course(input[0],credits,input[2],input[3]);
}
else
{
    //show some error message to user
}
于 2013-09-21T04:01:56.123 に答える
0

ここで、入力配列のサイズは 0 または 1 の場合があり、 で確認できますinput.length。配列のサイズが配列から取得する要素より小さいか等しい場合、実行時例外 ArrayIndexOutOfBoundsException がスローされます。

于 2013-09-23T06:22:34.580 に答える