我需要通过二维数组中位置 [0][0] 处的字符串值来标记迷宫的开始。问题是每次读取新行时,位置 [i][0] 处的值都会发生变化,我需要它始终是位置 [0][0] 处的第一个值。没有空格或分隔符,所以我正在读取每一行每一行中的每个字符值。
我不知道如何得到它只是看到 maze[0][0] 处的字符串是我想要设置为 1 的字符串?
迷宫的布局使得第一行有 2 个整数;1st int=迷宫中的#of 行,2nd int=迷宫中的#of 列。开始总是 [0][0],结束总是 [row-1][col-1]。剩下的行是迷宫。所以文本文件中的第 2 行 = 迷宫的第 0 行。
因此,我将文件作为字符串值读取,然后将第一行字符串值解析为 int,并使用这些值来定义我的二维整数数组。
然后我通读剩余的行并将它们与第一个 char 值进行比较,该值始终等于构成路径的值(如果存在)。如果读取的符号 = 到路径,则将其存储为 1,否则将其存储为 0。然后我将遍历 2D 数组并开始比较不同的坐标以确定路径并将该信息存储在一个队列,然后是一个堆栈。
我遇到的问题是它适用于前 3 行,但值 1 和 0 会在其余行中翻转。我附上了代码片段,它正在读取的 .txt 文件。我知道这是因为它将自己与每行的第一个元素进行比较,而前 3 行是“。” 然后是剩余行的“+”。
import java.io.*;
import java.util.*;
public class MazeArray {
String info;
String[] rowCol;
//private char [][] maze;
private int [][] maze;
private Scanner readFile;
private int path, cur, row, col;
public MazeArray()
{
maze = new int[0][0];
}
public int[][] readFile(String fileName) throws IOException
{
readFile = new Scanner(new File(fileName));
info = readFile.nextLine();
rowCol = info.split(" ",2);
row = Integer.parseInt(rowCol[0]);
col = Integer.parseInt(rowCol[1]);
maze = new int[row][col];
System.out.println("# of rows: " + row + " # of col: " + col);
while (readFile.hasNextLine())
{
//System.out.println(readFile.next());
for (int i=0; i<row; i++)
{
String symbol = readFile.nextLine();
for (int j=0; j<col; j++)
{
path = symbol.charAt(0);
//safe = symbol.charAt(maze[0][0]);
maze[i][j] = symbol.charAt(j);
if (maze[i][j] == path)
{
maze[i][j] = 1;
}
else
{
maze[i][j] = 0;
}
System.out.println("for loop Path coord = (" + i + " , " + j + ") Value at coord = " + maze[i][j]);
}//for j
}//for i
}// while
readFile.close();
return maze;
}
txt.File 的内容(迷宫)
7 12
..+.+.++++++
.++...++...+
..++.....+.+
+.+..++.+..+
+...++....++
+.+++..++..+
++++++++++..
输出 - 右
for loop Path coord = (0 , 0) Value at coord = 1
for loop Path coord = (0 , 1) Value at coord = 1
for loop Path coord = (0 , 2) Value at coord = 0
for loop Path coord = (0 , 3) Value at coord = 1
for loop Path coord = (0 , 4) Value at coord = 0
for loop Path coord = (0 , 5) Value at coord = 1
for loop Path coord = (0 , 6) Value at coord = 0
for loop Path coord = (0 , 7) Value at coord = 0
for loop Path coord = (0 , 8) Value at coord = 0
for loop Path coord = (0 , 9) Value at coord = 0
for loop Path coord = (0 , 10) Value at coord = 0
for loop Path coord = (0 , 11) Value at coord = 0
for loop Path coord = (1 , 0) Value at coord = 1
for loop Path coord = (1 , 1) Value at coord = 0
for loop Path coord = (1 , 2) Value at coord = 0
for loop Path coord = (1 , 3) Value at coord = 1
for loop Path coord = (1 , 4) Value at coord = 1
for loop Path coord = (1 , 5) Value at coord = 1
for loop Path coord = (1 , 6) Value at coord = 0
for loop Path coord = (1 , 7) Value at coord = 0
for loop Path coord = (1 , 8) Value at coord = 1
for loop Path coord = (1 , 9) Value at coord = 1
for loop Path coord = (1 , 10) Value at coord = 1
for loop Path coord = (1 , 11) Value at coord = 0
for loop Path coord = (2 , 0) Value at coord = 1
for loop Path coord = (2 , 1) Value at coord = 1
for loop Path coord = (2 , 2) Value at coord = 0
for loop Path coord = (2 , 3) Value at coord = 0
for loop Path coord = (2 , 4) Value at coord = 1
for loop Path coord = (2 , 5) Value at coord = 1
for loop Path coord = (2 , 6) Value at coord = 1
for loop Path coord = (2 , 7) Value at coord = 1
for loop Path coord = (2 , 8) Value at coord = 1
for loop Path coord = (2 , 9) Value at coord = 0
for loop Path coord = (2 , 10) Value at coord = 1
for loop Path coord = (2 , 11) Value at coord = 0
输出 - 错误
for loop Path coord = (3 , 0) Value at coord = 1 //Value should = 0 because ="+"
for loop Path coord = (3 , 1) Value at coord = 0