0

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

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

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

4

9 回答 9

4

JDK 中没有任何内容可以直接执行此操作。StringBuilder您可以使用或使用像 Guava 这样的 3rd 方库来实现自己的连接器

List<String> string = ...;
String list = Joiner.on(",").join(string);
于 2013-10-08T16:30:29.810 回答
1

如果它是一个字符串列表,那么只需打印它:

System.out.println(yourList);

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

于 2013-10-08T16:30:24.197 回答
1

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

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

Apache Commons 库非常方便。我建议看看他们(或谷歌的番石榴)。

于 2013-10-08T16:32:00.450 回答
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
于 2013-10-08T16:32:06.690 回答
0

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

于 2013-10-08T16:30:27.800 回答
0

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

于 2013-10-08T16:30:31.857 回答
0

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

StringUtils.join( list, ",");
于 2013-10-08T16:31:28.487 回答
0

请参阅连接字符串对象列表的最佳方法?

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

import org.apache.commons.lang3.StringUtils;

String result = StringUtils.join(list, ", ");
于 2013-10-08T16:32:03.770 回答
0

你可以使用org.apache.commons.lang.StringUtils.join方法

于 2013-10-08T16:32:47.380 回答