2010-10-26 82 views

回答

76

您可以使用Apache Commons Lang中的StringUtils.join()方法:

String join = StringUtils.join(joinList, "+"); 
+0

当然,如果您不想为此使用第三方库,创建实用类也很容易。但是'Apache Commons Lang'提供了很多有用的方法,它处理'null'的值...' – romaintaz 2010-10-26 08:29:17

18

或者从谷歌番石榴Joiner

Joiner joiner = Joiner.on("+"); 
String join = joiner.join(joinList); 
89
+1

不幸的是''String.join()'只接受'Iterable '(除了可变参数),而不像Guava的'Joiner.join ()'接受'Iterable ','迭代器',可变参数,... – 2014-08-07 12:26:12

+3

Correct - String.join()不处理任意类型。它期望一个可迭代的CharSequence,即列表。 如果要分隔任意类型,则需要提取字符串值并构建分隔列表。这个也是Java 8中的一个班轮:'String joined = iterableOfNonCharSequence.stream()。map(object - > object.methodToGetStringValue())。collect(Collectors.joining(“,”));' – gahrae 2014-08-08 04:46:24

+0

StringJoiner也是一个有用的类加入内容。这里是一个示例程序,显示StringJoiner和Collectors.joining ... http://pastebin.com/i2YwJcZy# – gahrae 2015-07-17 18:45:21

2

如果你只是想记录的元素列表,你可以使用已经串接所有列表toString()方法列表元素。

2

如果您使用的是Spring,您可以使用StringUtils.join()方法,该方法还允许您指定前缀和后缀。

String s = StringUtils.collectionToDelimitedString(fieldRoles.keySet(), 
       "\n", "<value>", "</value>"); 
+0

这实际上可以被复制,它是一个单一的方法:https://gist.github的.com/Zhuinden/5d88caee5e184e2b6d5ced329618f086 – EpicPandaForce 2017-01-16 00:29:10

3

您可以使用:org.springframework.util.StringUtils;

String stringDelimitedByComma = StringUtils.collectionToCommaDelimitedString(myList); 
相关问题