2 回答
TA贡献1982条经验 获得超2个赞
在我看来,您在某些事情上做得太过分了。假设您知道如何读取文件。为了简化一些事情,我跳过了实际阅读.txt. 相反,我宣布String像你的例子。然后,我逐行读取字符串并将该字符串存储在 2D 中List。我希望代码是不言自明的,并且易于将结果转换为二维数组(如果必须的话)。
public class Answer1 {
static final String input =
"########\n" +
"# # .#\n" +
"# $$.#\n" +
"#### #\n" +
" #@ ##\n" +
" ####";
public static void main(String[] args) {
List<List<String>> grid = new ArrayList<>();
for(String line: input.split("\n")){
List<String> row = new ArrayList<>();
row.add(line);
grid.add(row);
}
//test
System.out.println(grid);
}
}
TA贡献1821条经验 获得超4个赞
就在String line = sc.next();
you have 之后maxChar = line.length();
,这意味着if(maxChar < line.length())
紧接其后的条件永远不会满足。在while(sc.hasNext())
块的末尾,变量maxChar
将只包含最后一行的长度,实际上似乎是 7。
顺便说一句,我认为您希望条件为if(maxChar > line.length())
,如果您的意图是(正如我怀疑的那样)maxChar
在您的拼图文件中包含一行的最大长度。
添加回答
举报