2014-10-30 66 views
1

我想將這個input.txt放入一個二維數組中。我嘗試了幾種不同的方法。這是我最近的嘗試,我似乎卡在這裏...任何幫助,非常感謝。來自文本文件的java二維數組

input.txt結構:SCI2000/Science/1200/10/C - >有23行5列。我也想爲每個專欄製作一個標題。

FileReader fr = new FileReader("input.txt"); 
    BufferedReader br = new BufferedReader(fr); 
    StringBuilder sb = new StringBuilder(); 
    String line = br.readLine(); 

    while (line != null) { 
     sb.append(line); 
     sb.append(System.lineSeparator()); 
     line = br.readLine(); 
    } 
    String everything = sb.toString(); 
    String[][] input = new String[23][5]; 
    String[] tokens = everything.split("/"); 
    for(String str : tokens) 
     System.out.print(str); 
+1

什麼是'input.txt'的結構?你能告訴我們樣本數據以及它應該如何放置在數組中嗎? – 2014-10-30 01:27:21

+0

input.txt結構:SCI2000/Science/1200/10/C - >有23行5列。我也想爲每個專欄製作一個標題。 – Bob 2014-10-30 01:33:19

回答

0

,就在主處理部分(未測試):

int columns = 5; 
String[] row = String[columns]; 
int j = 0; 

while ((line = br.readline) != null) { 
    row = line.split("/"); 
    for(int i=0; i<row.length; ++i) { 
     input[j,i] = row(i); 
    } 
    ++j; 
} 
0
FileReader fr = new FileReader("input.txt"); 
BufferedReader br = new BufferedReader(fr); 
String[][] input = new String[24][5]; // 1 row for title, 23 rows for data 

// add title 
input[0] = new String[]{"title1", "title1", "title1", "title1", "title1"}; 
String line = br.readLine(); 
int row = 1; // update here 

while ((line = br.readLine())!= null) { 
    input[row++] = line.split("/"); 
} 

// print all data 
for (int i = 0; i < input.length; i++) { 
    for (int j = 0; j < input[i].length; j++) 
     System.out.print(input[i][j] + " "); 

    //new line 
    System.out.println(); 
} 
+0

標題沒有顯示。相反,這顯示爲二維數組的最後一行 - >「null null null null null 」。有什麼建議麼? – Bob 2014-10-30 02:21:31

+0

將'int row = 0'更改爲'int row = 1',因爲行0已經用於標題。 – qkzhu 2014-10-30 02:23:11