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條經驗 獲得超5個贊
就在String line = sc.next();you have 之后maxChar = line.length();,這意味著if(maxChar < line.length())緊接其后的條件永遠不會滿足。在while(sc.hasNext())塊的末尾,變量maxChar將只包含最后一行的長度,實際上似乎是 7。
順便說一句,我認為您希望條件為if(maxChar > line.length()),如果您的意圖是(正如我懷疑的那樣)maxChar在您的拼圖文件中包含一行的最大長度。
添加回答
舉報
