如何使用java将对象列表转换为一个字符串?

时间:2014-07-17 12:54:16

标签: java string transform iterable

我有一个List,我想将其转换为一个字符串。

我想使用Iterables.concat或Iterables.transform

但他们没有做我想做的事。

我怎么能在java中做到这一点?

5 个答案:

答案 0 :(得分:3)

除了Java 8中其他完全有效的答案外,您还可以使用String.join(delimeter, iterable)

答案 1 :(得分:2)

除了其他答案之外,如果您想控制列表条目之间的内容,您还可以遍历列表并使用StringBuilder对象为您创建和输出字符串。

StringBuilder builder = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
    builder.append(list.get(i));
    builder.append("whatever you want inbetween");
}
String output = builder.toString();

请注意,append将适用于任何基元,并将根据java API调用您作为参数放入的任何对象的toString表示。

答案 2 :(得分:2)

如果默认的List#toString方法没有达到您想要的效果,您可以使用Streams API获得更大的灵活性:

String result = list.stream().collect(Collectors.joining(", "));

在此表单中,您可以使用所需的任何分隔符。如果你的列表中还没有包含字符串,那么元素就是&#39;默认toString表示很好,然后使用

list.stream().map(Object::toString).collect(joining(", "));

如果您想要转换为字符串的自定义逻辑,只需替换映射函数,例如:

points.stream().map(p -> "(" + p.x + "," + p.y + ")").collect(joining(", "));

答案 3 :(得分:1)

我相信简单地list.toString()会做你想做的事。

答案 4 :(得分:1)

您可以使用Apache Commons Lang的StringUtils:

StringUtils.join(yourList, ',');

修改:http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#join%28java.util.Iterator