从文本文件生成迷宫时字符缺失、起点位置错误的原因排查
问题排查:文本地图转二维char数组异常
我正在将文本文件转换为二维char数组并定位特定字符的索引,任务是读取文本格式的地图并找出最短出路。目前已完成转换,但控制台打印地图时部分字符缺失,且起点位置不正确(预期为[1,2],实际为[1,3])。计划采用二进制迷宫相关逻辑实现,以下是我的代码:
获取地图行数的方法
private static int getRowsOfTheMap() throws IOException { int rows = 0; BufferedReader reader = getReader(filePath); while (reader.readLine() != null) rows++; reader.close(); return rows; }
获取地图列数的方法
private static int getColumnsOfTheMap() throws IOException { BufferedReader reader = getReader(filePath); String firstRow = reader.readLine(); return firstRow.length(); }
生成二维char数组地图的方法
private static char[][] getMapFromFile() throws IOException { char[][] map = new char[getRowsOfTheMap()][getColumnsOfTheMap()]; BufferedReader reader = getReader(filePath); for (int i = 0; i < map.length; i++) { for (int j = 0; j < map[0].length; j++) { map[i][j] = (char) reader.read(); } } return map; }
获取起点位置的方法
private static int[] getStartingPoint(char[][] map) { int[] startingPoint = { -1, -1 }; for (int i = 0; i < map.length; i++) { for (int j = 0; j < map[i].length; j++) { if (map[i][j] == 'X') { startingPoint[0] = i; startingPoint[1] = j; } } } return startingPoint; }
同时附上文本文件地图与转换后地图的对比图,请求排查问题原因。
内容的提问来源于stack exchange,提问作者ErikVM
相关产品推荐
相关产品推荐

