2011-10-06 14 views
5

私は、このように構築された文字列配列のフルArrayListのを持っている:String []のArrayListから文字列を出力しますか?

String[] words = new String[tokens.length]; 

私はArrayListの中に上記のような3つの配列があります。私がしたい場合は

surroundingWords.add(words); 
surroundingWords.add(words1); 
surroundingWords.add(words2); 

など今

を周囲の単語内の文字列配列の要素を出力します...できません。 は私がString []配列の内容を表示することに得ることができる最も近いそれらのアドレスです:

[Ljava.lang.String;@1888759 
[Ljava.lang.String;@6e1408 
[Ljava.lang.String;@e53108 

私は同じことのようです何の異なるバージョンの多くを試してみた、最後の試行されました:

for (int i = 0; i < surroudingWords.size(); i++) { 
     String[] strings = surroundingWords.get(i); 
     for (int j = 0; j < strings.length; j++) { 
      System.out.print(strings[j] + " "); 
     } 
     System.out.println(); 
    } 

ため、私は互換性のないタイプの本を乗り越えることはできません。

found : java.lang.Object 
required: java.lang.String[] 
       String[] strings = surroundingWords.get(i); 
                ^

ヘルプを!私はすでにここに解決策を試してみた

Print and access List

答えて

4

String[]Objectキャスト:

String[] strings = (String[]) surroundingWords.get(i);

またはパラメータのArrayListを使用します。次に

ArrayList<String[]> surroundingWords = new ArrayList<String[]>();

をあなたは戻り値をキャストする必要はありませんeからget()

+1

のようなものを試してみてください。 –

+0

ありがとうございました!それはそれをした! :) – user961627

+0

@Kurtis:あなたがPre-1.5の土地にこだわっていない限り、 – Poindexter

9

は、ArrayListの がそれをやって、現在の「正しい」方法です。この

public class Snippet { 
    public static void main(String[] args) { 
     List<String[]> lst = new ArrayList<String[]>(); 

     lst.add(new String[] {"a", "b", "c"}); 
     lst.add(new String[] {"1", "2", "3"}); 
     lst.add(new String[] {"#", "@", "!"}); 

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

} 
+2

+1、これは最も単純な "Javaの方法"です。その質問をする人は、Object.toString()やArrays/CollectionsヘルパークラスなどのJavaの基本的な振る舞いを試してみるべきです –

関連する問題