2014-06-09 74 views
0

我需要一個文本文件並從該文件中的文本初始化一個二維數組。文本文件中的每一行都有20個字符。 5行。Java:將文本文件轉換爲二維數組

到目前爲止我只有

int totalRow = 5; 
int totalColumn = 20 
char[][] myArray = new char[totalRow][totalColumn]; 
File file = new File("test.txt"); 
Scanner scanner = new Scanner(file); 

int row = 0; 
int column = 0; 

    while (scanner.hasNextLine()){ 
     while (scanner.hasNext()){ 
      myArray[row][column] = scanner.next(); 
      column++; 
     } 
    row++; 
    } 

我目前遇到的問題是,我得到錯誤:不能將字符串轉換爲char

另外,我不是很熟悉掃描儀類,所以如果hasNextLine和hasNext不適合我想實現的目標,請告訴我。

+0

http://mattgemmell.com/what-have-you-tried/ – The111

+1

繼續。寫更多的代碼。如果您遇到特定問題 - 請回答確切的問題。 –

+0

足夠公平,我會編輯我的主帖 – TryingToCode

回答

1

不是最有效的解決方案,但不會偏離原來的版本太多了,這應該做你想做的:

int totalRow = 5; 
int totalColumn = 20; 
char[][] myArray = new char[totalRow][totalColumn]; 
File file = new File("test.txt"); 
Scanner scanner = new Scanner(file); 


for (int row = 0; scanner.hasNextLine() && row < totalRow; row++) { 
    char[] chars = scanner.nextLine().toCharArray(); 
    for (int i = 0; i < totalColumn && i < chars.length; i++) { 
     myArray[row][i] = chars[i]; 
    } 
} 

編輯:退一步講,如果你自信列寬度,可以進一步簡化代碼:

int totalRow = 5; 
char[][] myArray = new char[totalRow][]; 
File file = new File("test.txt"); 
Scanner scanner = new Scanner(file); 

for (int row = 0; scanner.hasNextLine() && row < totalRow; row++) { 
    myArray[row] = scanner.nextLine().toCharArray(); 
} 
+0

謝謝,這個作品完美。 – TryingToCode

1

我將親自使用BufferReader實例來獲取文本文件中每行的對象。通過使用迭代器獲得每行的實例後,可以通過以下鏈接將該對象轉換爲String和Char:How to convert/parse from String to char in java?。如果你不知道如何去做。

此外,請確保nextLine爲空。你想退出迭代器。您可以根據需要將這些字符轉換爲二維數組。我希望這有幫助。

相關問題