[英]Java: Reading txt file into a 2D array
對於家庭作業,我們必須讀入包含地圖的txt文件。 使用地圖,我們應該讀取其內容並將它們放入二維數組中。
我已經設法將文件讀入一維String ArrayList,但我遇到的問題是將其轉換為二維char數組。
這是我到目前為止在構造函數中所擁有的:
try{
Scanner file=new Scanner (new File(filename));
while(file.hasNextLine()){
ArrayList<String> lines= new ArrayList<String>();
String line= file.nextLine();
lines.add(line);
map=new char[lines.size()][];
}
}
catch (IOException e){
System.out.println("IOException");
}
當我打印出lines.size()時,它打印出來1但是當我查看文件時它有10個。
提前致謝。
您必須在循環外創建列表。 通過實際實現,您可以為每個新行創建一個新列表,因此它的大小始終為1。
// ...
Scanner file = new Scanner(new File(filename));
List<String> lines = new ArrayList<String>(); // <- declare lines as List
while(file.hasNextLine()) {
// ...
BTW - 我不會命名char[][]
變量map
。 Map是一種完全不同的數據結構。 這是一個數組,如果你在循環內創建,那么你可能會遇到與列表一樣的問題。 但現在你應該知道一個快速修復;)
更改代碼如下:
public static void main(String[] args) {
char[][] map = null;
try {
Scanner file = new Scanner(new File("textfile.txt"));
ArrayList<String> lines = new ArrayList<String>();
while (file.hasNextLine()) {
String line = file.nextLine();
lines.add(line);
}
map = new char[lines.size()][];
} catch (IOException e) {
System.out.println("IOException");
}
System.out.println(map.length);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.