繁体   English   中英

如何将此文本文件添加到2d char数组中

[英]How can I add this text file to a 2d char array

我正在尝试添加一个如下所示的文本文件:

X X X X X X X X X X 
X S C C C C C C C X
X C C C X C X X C E
X C X X X C X X C X 
X C C C C X X X C X
X X X X C X X X C X
X X X X C X C C C X
X X C X C X X C C X 
X X C C C C C C C X  
X X X X X X C X X X

到目前为止,我有这个:

private char[][] maze = new char [100][100];

public void importMaze(String file){
    BufferedReader br;
    try {
        br = new BufferedReader(new FileReader(file));
        String line = br.readLine();
        while (line != null){
            int i = 0;
            for(int x = 0; x < line.length(); x++){
                maze[x][i] = line.charAt(x);
            }
            i++;
        }   
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

但这是行不通的。 有没有人可以帮助我存储这个?

几件事。

我建议从使用line.charAt(x)更改为使用splits函数。

String[] split = line.split(" ");
for (int x = 0; x < split.length; x++){
    maze[i][x] = split[x];

}

另外,在增加i之后,不要忘记添加

line = br.readLine();

您从未在while循环中更新行...错误在这里

String line = br.readLine(); // <-- This reads one line
while (line != null)

String line = null;
while ((line = br.readLine()) != null)

尝试这个。 对不起,我还没有测试。

ArrayList<String[]> tmp = new ArrayList<String[]>();
String line;
while ((line = br.readLine()) != null) {
    tmp.add(line.split(" ");
}
String[][] maze = tmp.toArray(new String[tmp.length()][]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM