2013-01-19 75 views
1

我有這個樣本列表從文件從一個ArrayList

firstname, lastname, age 
anne, smith, 6 
dougie, miller, 8 

現在我堅持ArrayList的

ArrayList<String[]> rows = new ArrayList<>(); 
    while ((line = reader.readLine()) != null) { 
     String[] row = line.split(","); 
     rows.add(row); 
    } 

    for (String[] row : rows) { 
     System.out.println(Arrays.toString(row)); 
    } 

我得到了這些輸出中提取數據:

[firstname,lastname,age] 
[anne,smith,6] 
[dougie,miller,8] 

我試過用這樣做:

String[] x1 = new String[rows.size()+1]; 
    for(int i=0;i<rows.size();i++){ 
    String[] lastname = (String[]) rows.get(i+1); 
     System.out.println(lastname[1]); 
     //x1[i]=lastname[1]; 
    } 

但我似乎無法把姓氏放在一個數組中。它會給我這個錯誤:

異常在線程 「AWT-EventQueue的 - 0」 java.lang.IndexOutOfBoundsException:指數:227,大小:227

我想有這樣的輸出:

firstname 
anne 
dougie 

lastname 
smith 
miller 

age 
6 
8 

我該怎麼做?

+1

你說你沒有得到輸出,但是你向我們展示了你的輸出。你也談論'ArrayList',但是你的代碼中沒有。你能澄清你的問題嗎? – jlordo

+0

你想arraylist或文件讀取和輸出?或者你想從文件中讀取文件並初始化數組列表? –

+0

'ArrayList'在哪裏?我正在尋找... – Parth

回答

0

這應該做工精細,提供的StringArrays都是同樣大小:

int cols = rows.size() > 0 ? rows.get(0).length : 0; 
for (int i = 0; i < cols; i++) { 
    for (int j = 0; j < rows.size(); j++) { 
    System.out.println(rows.get(j)[i]); 
    } 
} 
0

我想過使用一個簡單的解決方案,使用Scanner

File file = new File(filePath); 
try { 
    Scanner content = new Scanner(file).useDelimiter("\n"); 
    while (content.hasNext()) { 
     String[] line = content.next().split(",\\s"); 
     for (String s : line) { 
      System.out.println(s); 
     } 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
}