在Java </string>中将List <string>转换为String []

时间:2010-03-31 11:24:36

标签: java type-conversion

如何将list字符串转换为array?以下代码返回错误。

public static void main(String[] args) {
    List<String> strlist = new ArrayList<String>();
    strlist.add("sdfs1");
    strlist.add("sdfs2");
    String[] strarray = (String[]) strlist.toArray();       
    System.out.println(strarray);
}

错误:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
    at test.main(test.java:10)

6 个答案:

答案 0 :(得分:98)

你想要

String[] strarray = strlist.toArray(new String[0]);

请参阅here以获取文档,并注意您也可以调用此方法,使其填充传递的数组,而不是仅使用它来确定要返回的类型。另请注意,也许当您打印阵列时,您更喜欢

System.out.println(Arrays.toString(strarray));

因为那将打印实际元素。

答案 1 :(得分:18)

public static void main(String[] args) {
    List<String> strlist = new ArrayList<String>();
    strlist.add("sdfs1");
    strlist.add("sdfs2");

    String[] strarray = new String[strlist.size()]
    strlist.toArray(strarray );

    System.out.println(strarray);


}

答案 2 :(得分:3)

List.toArray()必然会返回一个Object数组。要获取String数组,需要使用转换语法:

String[] strarray = strlist.toArray(new String[0]);

有关更多内容,请参阅java.util.List的javadoc。

答案 3 :(得分:2)

我为这类任务设计并实施了Dollar

String[] strarray= $(strlist).toArray();

答案 4 :(得分:0)

希望这可以帮助那些人:

列表清单= ..;

String [] stringArray = list.toArray(new String [list.size()]);

来自这里的好答案:https://stackoverflow.com/a/4042464/1547266

答案 5 :(得分:0)

String [] strarray = strlist.toArray(new String [0]);

如果你想将List转换为字符串 使用StringUtils.join(slist,'\ n');