2011-10-06 94 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基础知识的行为 –