我有一个完整的字符串数组的ArrayList,我是这样构建的:
String[] words = new String[tokens.length];
我的ArrayList中有三个如上所示的数组:
surroundingWords.add(words);
surroundingWords.add(words1);
surroundingWords.add(words2);
等
现在,如果我想在aroundWords中打印出String数组中的元素......我不能。 我最接近显示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
答案 0 :(得分:11)
尝试这样的事情
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));
}
}
}
答案 1 :(得分:4)
将Object
投射到String[]
:
String[] strings = (String[]) surroundingWords.get(i);
或使用参数化ArrayList:
ArrayList<String[]> surroundingWords = new ArrayList<String[]>();
然后您不必从get()
转换返回值。