Java 是否从字符串[]的ArrayList打印字符串?
我有一个ArrayList,其中包含字符串数组,我是这样构建的:Java 是否从字符串[]的ArrayList打印字符串?,java,arrays,string,arraylist,dereference,Java,Arrays,String,Arraylist,Dereference,我有一个ArrayList,其中包含字符串数组,我是这样构建的: String[] words = new String[tokens.length]; 我的ArrayList中有三个与上面类似的数组: surroundingWords.add(words); surroundingWords.add(words1); surroundingWords.add(words2); 等 现在如果我想打印出环绕词中字符串数组中的元素。。。我不能。 最接近显示字符串[]数组内容的是它们的地址: [L
String[] words = new String[tokens.length];
我的ArrayList中有三个与上面类似的数组:
surroundingWords.add(words);
surroundingWords.add(words1);
surroundingWords.add(words2);
等
现在如果我想打印出环绕词中字符串数组中的元素。。。我不能。
最接近显示字符串[]数组内容的是它们的地址:
[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();
}
救命啊
我已经在这里尝试了解决方案:将
对象
转换为字符串[]
:
String[]strings=(String[])环绕words.get(i)代码>
或使用参数化的ArrayList:
surroundingWords.add(words);
surroundingWords.add(words1);
surroundingWords.add(words2);
ArrayList-surroundingWords=new-ArrayList()代码>
这样,您就不必从get()
中强制转换返回值,请尝试以下操作
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));
}
}
}
公共类代码段{
公共静态void main(字符串[]args){
List lst=new ArrayList();
lst.add(新字符串[]{“a”、“b”、“c”});
lst.add(新字符串[]{“1”、“2”、“3”});
lst.add(新字符串[]{“#”、“@”、“!”});
对于(字符串[]arr:lst){
System.out.println(Arrays.toString(arr));
}
}
}
ArrayList是当前“正确”的操作方式。@Kurtis:除非您陷入1.5之前的版本中land@Poindexter没错,这就是为什么我说当前正确的方式:)+1,这是最简单的一种最“Java方式”。问这个问题的人应该尝试学习诸如Object.toString()和Arrays/Collections助手类等java基础知识的行为