0

テキストファイルからグリッドを読み込んで、グラフを作成しようとしています。

目標ノードはaで示され、X他のノードは。で示されます.

行数と列数もあります。したがって、基本的には、各行の次の行を読み、列の場所のイテレータを渡して各列の場所の文字を取得し、それをXゴールノードとしてマークする必要があるかどうかを確認しようとしています。

goalGraph = new int[rows][cols];
for (int i = 0; i < rows; i++) {
    String readLine = in.nextLine();
    System.out.println(readLine);
    for (int ii = 0; ii < cols; ii++) {
        char c = readLine.charAt(ii);
        if (c == 'x') {
            goalGraph[i][ii] = 1;
        }
        else {
            goalGraph[i][ii] = 0;
            System.out.print(".");
        }
    }
}

しかし、でarrayoutofboundsエラーが発生し続けますindex (0)

もう1つの奇妙なことはreadLine、下位のコードが実装されているときは印刷されないが、次のように表示されることです。

goalGraph = new int[rows][cols];
for (int i = 0; i < rows; i++) {
    String readLine = in.nextLine();
    System.out.println(readLine);
    /**
    for (int ii = 0; ii < cols; ii++) {
        char c = readLine.charAt(ii);
        if (c == 'x') {
            goalGraph[i][ii] = 1;
        }
        else {
            goalGraph[i][ii] = 0;
            System.out.print(".");
        }
    }
    **/
}

その結果、読み込まれている行が出力され、正しい文字列が取得されます。

X.....

...X..

......

.X....

誰かが私を正しい方向に向けることができますか?

ありがとう!

4

1 に答える 1

1

あなたが示したコードには明らかに問題はありません。もっと見る必要があります。おそらく何が起こっているのかというとrows、入力に実際にはデータの行がないということです。どのようrowscols生成されますか?はどのような型でin、どのように初期化されますか? arrayoutofbounds エラーはどの行で発生しますか?

于 2012-09-13T01:46:57.053 に答える