首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >二维ArrayList打印不正确

二维ArrayList打印不正确
EN

Stack Overflow用户
提问于 2015-05-30 20:46:29
回答 2查看 109关注 0票数 1

我正在创建一个函数来打印一个mase,它存储在一个2 Dimensional ArrayList<ArrayList<String>>中。但是,函数输出了很大一部分空白。我试图先遍历每个ArrayList<String>,然后遍历嵌套ArrayList<String>中的每个String元素,然后通过读取文件创建ArrayList<ArrayList<String>>

以下是文件:

代码语言:javascript
运行
复制
XXXXXXXXSOOOOXXXXXX
XXXXXXXXXXXXOXXXXXX
XXXXXXXXXXXXOXXXXXX
XXXXXXXXXXXXOXXXXXX
XXXXXXXOOOOOXXXXXX
XXXXXXXOXXXXXXXXXXX
XXXXXXXEXXXXXXXXXXX

这里是我创建它的地方:

代码语言:javascript
运行
复制
String fileName = "maze.txt";
String line = null;
ArrayList<ArrayList<String>> lines = new ArrayList<ArrayList<String>>();

// Setup FileReader, BufferedReader, and LineReader
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);

// Get all the lines inside the maze file
while ((line = bufferedReader.readLine()) != null)
{
    ArrayList<String> lineList = new ArrayList<String>();

    for (int i = 0; i < line.length(); i++)
    {
        lineList.add(line.substring(i, i));
    }

    lines.add(lineList);                
}

这是我的功能:

代码语言:javascript
运行
复制
public static void printMase(ArrayList<ArrayList<String>> lines)
{
    for (ArrayList<String> row: lines)
    {
        for (String elem: row)
        {
            System.out.println(elem);
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-31 01:11:12

您的代码中有一些小错误。进行以下更改。

代码语言:javascript
运行
复制
// This is adding a blank space
lineList.add(line.substring(i, i));

代码语言:javascript
运行
复制
// This will add a single character
lineList.add(line.substring(i, i+1));

并修改printMase(ArrayList<ArrayList<String>> lines)

代码语言:javascript
运行
复制
public static void printMase(ArrayList<ArrayList<String>> lines)
{
    for (ArrayList<String> row: lines)
    {
        for (String elem: row)
        {
            // Using print so each character is on the same line
            System.out.print(elem);
        }
        // Now use println to end the line
        System.out.println();
    }
}

完整代码如下:

代码语言:javascript
运行
复制
public static void main(String[] args) throws Exception {
    String fileName = "maze.txt";
    String line = null;
    ArrayList<ArrayList<String>> lines = new ArrayList<>();

    // Setup FileReader, BufferedReader, and LineReader
    FileReader fileReader = new FileReader(fileName);
    BufferedReader bufferedReader = new BufferedReader(fileReader);

    // Get all the lines inside the maze file
    while ((line = bufferedReader.readLine()) != null) {
        ArrayList<String> lineList = new ArrayList<>();

        for (int i = 0; i < line.length(); i++) {
            // Adds a single character
            lineList.add(line.substring(i, i+1));
        }

        lines.add(lineList);
    }

    printMase(lines);
}

public static void printMase(ArrayList<ArrayList<String>> lines)
{
    for (ArrayList<String> row: lines)
    {
        for (String elem: row)
        {
            // Using print so each character is on the same line
            System.out.print(elem);
        }
        // Now use println to end the line
        System.out.println();
    }
}

结果:

代码语言:javascript
运行
复制
XXXXXXXXSOOOOXXXXXX
XXXXXXXXXXXXOXXXXXX
XXXXXXXXXXXXOXXXXXX
XXXXXXXXXXXXOXXXXXX
XXXXXXXOOOOOXXXXXXX
XXXXXXXOXXXXXXXXXXX
XXXXXXXEXXXXXXXXXXX
票数 2
EN

Stack Overflow用户

发布于 2015-05-30 20:57:10

喔,我意识到我在初始化时添加了空格。我更新了代码,使其添加了实际字符:

代码语言:javascript
运行
复制
String fileName = "maze.txt";
String line = null;
ArrayList<ArrayList<String>> lines = new ArrayList<ArrayList<String>>();

// Setup FileReader, BufferedReader, and LineReader
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);

while ((line = bufferedReader.readLine()) != null)
{
    ArrayList<String> lineList = new ArrayList<String>();

    for (int i = 0; i < line.length(); i++)
    {
        lineList.add(Character.toString(line.charAt(i)));
    }

    lines.add(lineList);                
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30551231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档