2011-12-19 165 views
0

我想要做的是,在一行中讀取多個單詞的文件,然後將每個單詞添加到2d數組列表中。這應該是[[凱文,凱文,凱文] [工作,工作,工作]]將文件讀取到2d數組列表中並將每個數據行存儲到數組列表中

下面的代碼運作良好,但它確實如此[[kevin,kevin,kevin,jobs,jobs,jobs]]

它應該通過使用嵌套的,但可以有人請幫助嗎?

public void getReference() throws IOException 
    { 
     String line=null; 

      connectRead("computer"); 
      //this is a method that reads a file in a format kevin kevin kevin kevin 
      try 
      { 
       reference.add(new ArrayList<String>()); 
       while ((line=bufferedReader.readLine())!=null) 
       { 
        st = new StringTokenizer(line); 

        for (int i = 0 ; i < st.countTokens() ; i++) 
        {  
         reference.get(i).add(st.nextToken()); 
         reference.get(i).add(st.nextToken()); 
         reference.get(i).add(st.nextToken()); 
         reference.get(i).add(st.nextToken()); 
        } 

       } 
       System.out.println(reference); 

       bufferedReader.close(); 
      } 
      catch (IOException e) 
      { 
       System.out.println(e); 
      }  

    } 

文本文件看起來像這樣

凱文美國黑客 沃茲尼亞克美國黑客 工作美國黑客

回答

1

您時刻references.get(I),其中i = 0,所以無論何時讀取新行,都會從位於第零個索引處的ArrayList開始插入標記。

試試這個,但是這個結構看起來有點讓我困惑。可能會顯示輸入文件的結構有助於更好地編寫代碼。

public void getReference() throws IOException 
{ 
    String line=null; 

     connectRead("computer"); 
     //this is a method that reads a file in a format kevin kevin kevin kevin 
     try 
     { 
      reference.add(new ArrayList<String>()); 
      int indexOfReferences =0 ; 
      while ((line=bufferedReader.readLine())!=null) 
      { 
       st = new StringTokenizer(line); 

       for (int i = 0 ; i < st.countTokens() ; i++) 
       {  
        reference.get(indexOfReferences).add(st.nextToken()); 
       } 
       indexOfReferences++; 

      } 
      System.out.println(reference); 

      bufferedReader.close(); 
     } 
     catch (IOException e) 
     { 
      System.out.println(e); 
     }  

} 
+0

@ user1105793有一些變化,我編輯了代碼。 – Zohaib 2011-12-19 12:11:42

+0

更改代碼「線程中的異常」main「java.lang.IndexOutOfBoundsException:Index:1,Size:1」後出現此錯誤 – Milan 2011-12-19 12:23:30

+0

感謝您的幫助我修復了它 – Milan 2011-12-19 12:28:21

相關問題