0

我正在尝试从文本文件中读取网格以从中构建图形。

目标节点由 a 表示,X而其他节点由 a 表示.

我也有行数和列数。所以,我基本上只是试图读取每一行的下一行,然后通过传递列位置的迭代器来获取每个列位置的字符,并根据它检查它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)

另一个奇怪的地方是,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数据行。rows又是如何cols产生的?什么类型in,它是如何初始化的?arrayoutofbounds 错误发生在哪一行?

于 2012-09-13T01:46:57.053 回答