0

と等しく、自動的にインクリメントしないため、ArrayIndexOutOfBoundsException: 0エラーが発生しています。期待どおりに動作するように、このコードを修正するにはどうすればよいですか?i0

配列で読み取ったファイルで読み取ったデータの各行を自動的にインクリメントしたい。どこに置いてi++;も、この問題が発生します。別の変数を使用する場合: 同じ問題。

import java.io.*;
import java.util.*;

public class IdolResults
{
    public static void main(String[] args) throws FileNotFoundException
    {

        //construct Scanner
        //Scanner in = new Scanner(System.in);
        Scanner in = new Scanner(new File("eleVotes1.txt"));
        Scanner in2 = new Scanner(new File("eleVotes2.txt"));

        String[][] array;
        int[][] array2;
        String[] nameArray;
        int[] voteArray;
        int i = 0;

        while (in.hasNextLine())
        {   
             String name = in.next();
             int vote = in.nextInt();

             System.out.println(name);
             System.out.println(vote);

             //stuffhere: print, save name and vote, etc..
             //create an array and save info there
             array = new String[i][];
             array2 = new int[i][];

             array[i][0] = name;
             array2[i][1] = vote;

             //individually store name and votes
             nameArray = new String[10];
             voteArray = new int[10];

             nameArray[i] = name;
             voteArray[i] = vote;
             i++;

        }
    }//end of main
}//end of class

私は最終的にこの保存されたデータを操作したいので、これを作ることができます: 期待される出力:

Results for 2099
Idol Name        Votes Received    % of Total Votes
__________________________________________________      
Clarkson            80,000            14.4%
Seacrest            100,000           18.0%
Dunkleman           75,000            13.5%
Cowell              110,000           19.7%
Abdul               125,000           22.4%
Jackson             67,000            12.0%

Total Votes         557,000

The winner is Abdul!
4

1 に答える 1

5

ここ

array = new String[i][];
array2 = new int[i][];

外側の配列をインスタンス化するだけです。内部配列もインスタンス化する必要があります

それで

array[i] = new string[j];
于 2013-04-26T00:50:09.967 に答える