将列表中的所有字符串打印成单个字符串的最优雅/简洁方法是什么?

时间:2013-10-08 16:28:06

标签: java string list

是否有一种优雅的方式(没有迭代器或循环的优雅意义)将Java的List<Sting>对象的每个成员打印成逗号分隔的字符串?

,例如,Java的Perl版本my $allElementsString = join(",", @myStrings);

我检查了List界面并没有找到任何有希望的东西(我最好的猜测是使用toArray然后使用Array的toString?)

9 个答案:

答案 0 :(得分:4)

JDK中没有任何内容可以直接执行此操作。您可以使用StringBuilder实现自己的joiner,也可以使用Guava等第三方库

List<String> string = ...;
String list = Joiner.on(",").join(string);

答案 1 :(得分:1)

如果是字符串列表,则只需打印它:

System.out.println(yourList);

如果是自定义对象列表,请确保在自定义类中重写toString方法以正确打印List对象。

答案 2 :(得分:1)

我认为大多数人都使用Apache Commons' StringUtils

List<String> yourStrings = /* something */;
String commaSeperated = StringUtils.join(yourStrings, ',');

Apache Commons libraries非常方便。我建议您查看它们(或Google的Guava)。

答案 3 :(得分:1)

这样的事情:

List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
String result = list.toString().substring(1, list.toString().length() - 1);
System.out.println(result);

<强>输出:

1, 2, 3

答案 4 :(得分:0)

不在JDK中,但有guava,其他实用程序库也提供类似的解决方案。

答案 5 :(得分:0)

不。您可能应用于List或Array的任何toString方法都不会以任何有意义的方式进行格式化。

答案 6 :(得分:0)

使用已经指出的Guava,或Apache Common的StringUtils

StringUtils.join( list, ",");

答案 7 :(得分:0)

请参阅Best way to concatenate List of String objects?

引, 使用Apache Commons Lang中的StringUtils.join方法之一。

import org.apache.commons.lang3.StringUtils;

String result = StringUtils.join(list, ", ");

答案 8 :(得分:0)