2010-10-26 36 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); 
相關問題