是否有一种优雅的方式(没有迭代器或循环的优雅含义)将 JavaList<Sting>
对象的每个成员打印成逗号分隔的字符串?
例如,Java 的 Perl 版本my $allElementsString = join(",", @myStrings);
我检查了 List 界面并没有发现任何有希望的东西(我最好的猜测是使用toArray
然后 Array 的toString
?)
JDK 中没有任何内容可以直接执行此操作。StringBuilder
您可以使用或使用像 Guava 这样的 3rd 方库来实现自己的连接器
List<String> string = ...;
String list = Joiner.on(",").join(string);
如果它是一个字符串列表,那么只需打印它:
System.out.println(yourList);
如果它是自定义对象的列表,请确保您toString
在自定义类中有重写方法以正确打印 List 对象。
我认为大多数人使用Apache Commons 的 StringUtils:
List<String> yourStrings = /* something */;
String commaSeperated = StringUtils.join(yourStrings, ',');
Apache Commons 库非常方便。我建议看看他们(或谷歌的番石榴)。
像这样的东西:
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
不在 JDK 中,但有guava和其他实用程序库也提供类似的解决方案。
没有。toString
您可能应用于 List 或 Array 的任何方法都不会以任何有意义的方式格式化。
要么使用已经指出的 Guava,要么使用 Apache Common 的StringUtils
:
StringUtils.join( list, ",");
引用,使用 Apache Commons Lang 中的 StringUtils.join 方法之一。
import org.apache.commons.lang3.StringUtils;
String result = StringUtils.join(list, ", ");