Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否从字符串[]的ArrayList打印字符串?_Java_Arrays_String_Arraylist_Dereference - Fatal编程技术网

Java 是否从字符串[]的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

我有一个ArrayList,其中包含字符串数组,我是这样构建的:

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基础知识的行为