2011-12-19 13 views
0

私がしたいのは、複数の単語を1行につけてファイルを読み込んだ後、2dのarraylistに各単語を追加することです。これは[kevin、kevin、kevin] [jobs、jobs、jobs]2d arraylistにファイルを読み込み、各単語を配列リストに一行に格納する

のコードはうまく動作しますが、これは[kevin、kevin、kevin、jobs、jobs、jobs]のようになります。

ネストされたforを使用して行う必要がありますが、助けてもらえますか?ファイル内

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

あなたは常に、(I)references.getを取得している。ここで、i = 0、そうのようになります新しい行が読み込まれるたびに、トークンの挿入が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

+0

コード "Exception in thread" main "java.lang.IndexOutOfBoundsException:Index:1、Size:1"を変更した後にこのエラーが発生する – Milan

+0

私はそれを修正してくれてありがとう – Milan

関連する問題