我試圖從文本文件中讀取一個網格來構建一個圖表。Java String.charAt()無法正常工作
目標節點用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(".");
}
}
}
,但我一直在index (0)
得到一個arrayoutofbounds
錯誤。
另一個奇怪的事情是,它不打印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....
任何人都可以指向正確的方向嗎?
謝謝!
您能向我們展示您正在從文本文件中讀取的「網格」嗎? – Killrawr
它看起來像「X ....」等......我在帖子中沒有線條之間的空白。 我不知道爲什麼它不讓我做多行,所以我不得不打兩次「輸入」。 – user1667270
它對我來說沒有任何意義,因爲如果我像第二個代碼示例中那樣刪除整個char塊,print語句開始工作並顯示該行確實正在被正確讀取。 然而,被註釋掉的塊在print語句下面,所以我不知道爲什麼當代碼沒有被註釋掉時,至少第一個print語句不工作。 – user1667270