簡體   English   中英

Java:將txt文件讀入2D數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM