是否有一种优雅的方式(没有迭代器或循环的优雅意义)将Java的List<Sting>
对象的每个成员打印成逗号分隔的字符串?
,例如,Java的Perl版本my $allElementsString = join(",", @myStrings);
我检查了List界面并没有找到任何有希望的东西(我最好的猜测是使用toArray
然后使用Array的toString
?)
答案 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)