关于java:用逗号分隔的arraylist元素打印的简单而优雅的方法是什么?

what's a simple and elegant way to print arraylist elements separated by comma?

本问题已经有最佳答案,请猛点这里访问。

嗨,我正在编写代码来打印由逗号分隔的数组列表中的所有元素,下面是我编写的方法。它起作用了。但我想知道它是否可以简化?有没有一种更优雅的方法来打印由某个分隔符分隔的数组列表中的所有元素?(例如,打印字符串数组列表的方法得到"tom,sherlock,jack")。

谢谢大家!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public String printMyArrayList() {
    if(mylist.size() == 0)return"";
    else if(mylist.size() == 1)return mylist.get(0).toString();
    else {
        String returnStr ="";
        for (int i = 0; i < mylist.size() ; i++) {
            if(i == 0)returnStr = mylist.get(i).toString();
            else {
                returnStr = returnStr +"," + mylist.get(i).toString();
            }
        }
        return returnStr;
    }
}


从Java应用Collectors.joining8:

1
2
3
return list.stream()
           .map(Object::toString)
           .collect(Collectors.joining(","));

解决方案:一个Java应用String.join8

1
2
3
4
5
List<String> l = Arrays.asList(new String[] {"foo","bar","baz"});

String joined = String.join(",", l);

System.out.println(joined);

输出:

1
foo, bar, baz


如果你的工作与Android系统尝试这个:

1
android.text.TextUtils.join(",", listOfObjects);

"有人利用了Spring框架中。

1
org.springframework.util.StringUtils.arrayToCommaDelimitedString(listOfObjects);


试试这个:

1
2
3
4
5
6
String delimiter ="";
StringBuilder sb = new StringBuilder();
for (Item x : list) {
    sb.append(delimiter).append(x);
    delimiter =",";
}

你也可以使用木工班

1
Joiner.on(",").join(lst)

一个班轮。

System.out.println(myArrayList.toString().replaceAll("\\[\\]",""));

即得到默认的字符串表示形式(这是在支撑[1, 2, 3])和删除。


List#toString使用方法。它将与[]enclose。如果你真的想,你可以返回到包括[]比它。

1
2
   String listStr= list.toString();
   String withoutSym= listStr.substring(1, listStr.length()-1);


我不知道你做了什么"均由简单和优雅,但我会去用它。

编辑:string.join可能是最好的方式

编辑:Don’t使用双尖出这一点,在下面的评论。

1
2
3
4
5
6
7
8
9
public String printMyArrayList(ArrayList<String> list)
{
   String result ="";
   for(String s : list)
   {
      result += s +",";
   }
   return result.substring(0, result.length()-2);
}