使用java

时间:2015-07-25 05:15:16

标签: java arrays

我有以下代码

List<String> test = new ArrayList<String>();
test.add("one");
test.add("two");
test.add("three");

使用Array Utils在单个字符串中输出"one,two,three"。需要单线解决方案。

4 个答案:

答案 0 :(得分:11)

使用加入

String joined2 = String.join(",", test );

答案 1 :(得分:1)

您无法使用ArrayUtils执行此操作。您可以使用Apache's StringUtils join function来获得所需的结果。

// result is "one,two,three"
StringUtils.join(test, ',');

如果您不想使用库,可以创建此功能:

public static String joiner(List<String> list, String separator){
    StringBuilder result = new StringBuilder();
    for(String term : list) result.append(term + separator);
    return result.deleteCharAt(result.length()-separator.length()).toString();
} 

答案 2 :(得分:0)

如果您必须使用ArrayUtils,则可以使用List.toArray(T[])(因为ArrayUtils用于数组)和正则表达式用于删除{}在一行如

List<String> test = new ArrayList<>(Arrays.asList("one", "two", "three"));
System.out.println(ArrayUtils.toString(test.toArray(new String[0]))
        .replaceAll("[{|}]", ""));

输出(按要求)

  

一个,两个,三个

String.join(CharSequence, Iterable<? extends CharSequence>) @Vishnu建议的answer提供了一个避开ArrayUtils的解决方案(但可以说是更好,假设您可以使用它与

String joined2 = String.join(",", test);
System.out.println(joined2);
输出相同的

答案 3 :(得分:-1)

       List<String> test = new ArrayList<String>();
        test.add("one");
        test.add("two");
        test.add("three");
       Iterator it = test.iterator();

       while(it.hasNext()){

      String s=it.next();
      StringBuilder sb = new StringBuilder();

     sb.append(s);
}