2014-10-30 33 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