我有一个List,我想将其转换为一个字符串。
我想使用Iterables.concat或Iterables.transform
但他们没有做我想做的事。
我怎么能在java中做到这一点?
答案 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, ',');