0

多次元配列に入れるファイルがあります。[0] に日付 (long) を設定する必要があり、2 番目のトークンの値に応じてディメンションの 1 つをインクリメントする必要があります。

コードは次のとおりです。

BufferedReader bufStatsFile  = new BufferedReader(new FileReader(statsFile));

String line = null;
List<Long[]> stats = new ArrayList<Long[]>();
stats.add(new Long[11]);
int i = 0; // will be in a loop later

while((line = bufStatsFile.readLine()) != null) {
    StringTokenizer st = new StringTokenizer(line,";");
    while(st.hasMoreTokens()) {
        stats.get(i)[0] = Long.parseLong(st.nextToken());
        stats.get(i)[Integer.parseInt(st.nextToken())]++; // Here is the problematic line.
    }
}
bufStatsFile.close();

しかし、増分は機能しません。おそらく正しくない私の配列が原因かもしれませんが、それを行う別の適切な方法が見つかりませんでした。

4

2 に答える 2

1

Ok。私は見つけました、そしてもちろん、それはばかげていました。

問題は配列宣言にありました。私はそのようにしました:

    List<Long[]> stats = new ArrayList<Long[]>();
    stats.add(new Long[11]);

次に、長い数値ではなく、オブジェクトをインクリメントしようとしました。

だから今、私はこのようにします:

    List<long[]> stats = new ArrayList<>();
    stats.add(new long[11]);

そして、それは完全に機能しています。

于 2012-09-17T13:39:15.150 に答える
0

ファイル内の要素が 0 から 10 までの数字であることを確認してください。行 0 のみを操作しているのに、なぜリストがあるのでしょうか?

あなたのコードはどの例外を捨てていますか?

于 2012-09-17T13:08:51.427 に答える