2011-10-06 95 views
5

我有一個ArrayList充滿了我建立這樣的字符串數組:從String []的ArrayList打印字符串?

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

我有三個陣列像上面我的ArrayList:

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

ObjectString[]

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

或使用參數的ArrayList:

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

然後你不必投入回報價值e從get()

+1

ArrayList中是做它的當前「正確」的方式。 –

+0

謝謝!那樣做了! :) – user961627

+0

@Kurtis:除非你被困在1.5之前的土地 – Poindexter

9

嘗試這樣的事情

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基礎知識的行爲 –