代码之家  ›  专栏  ›  技术社区  ›  Christian

在爪哇中将列表< String >转换为String

  •  66
  • Christian  · 技术社区  · 14 年前

    如何转换 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 回复  |  直到 6 年前
        1
  •  96
  •   dfa    14 年前

    你想要

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

    here 对于文档,请注意,您还可以调用此方法,使其填充传递的数组,而不是仅使用它来计算返回的类型。另外请注意,当您打印数组时

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

    因为这将打印实际元素。

        2
  •  18
  •   Paul    14 年前
    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);
    
    
    }
    
        3
  •  3
  •   crazyscot    14 年前

    List.toArray() 必须返回一个对象数组。要获取字符串数组,需要使用强制转换语法:

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

    有关更多信息,请参见javadoc for java.util.list。

        4
  •  2
  •   dfa    14 年前

    我设计并实现了 Dollar 对于此类任务:

    String[] strarray= $(strlist).toArray();
    
        5
  •  0
  •   Community Tales Farias    7 年前

    希望这能帮助其他人:

    列表列表=…;

    string[]stringArray=list.toArray(新字符串[list.size()]);

    很好的回答: https://stackoverflow.com/a/4042464/1547266

        6
  •  0
  •   phil    10 年前

    string[]strarray=strlist.toarray(新字符串[0]);

    如果要将列表转换为字符串 使用stringutils.join(slist,“\n”);