2010-10-26 21 views

Antwort

76

können Sie die StringUtils.join() Methode von Apache Commons Lang verwenden:

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

Natürlich ist das Erstellen einer Dienstprogrammklasse auch sehr einfach, wenn Sie keine Bibliothek von Drittanbietern dafür verwenden möchten. Aber 'Apache Commons Lang' bieten viele nützliche Methoden, die sich um' Null'-Werte kümmern ... – romaintaz

18

Oder Joiner von Google Guava.

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

Leider akzeptiert 'String.join()' nur 'Iterable ' (abgesehen von Varargs) im Gegensatz zu Guavas 'Joiner.join() 'akzeptiert' Iterable ',' Iterator ', varargs, ... –

+3

Richtig - String.join() behandelt keine beliebigen Typen. Es erwartet eine iterierbare CharSequence, dh Liste . Wenn Sie willkürliche Typen begrenzen möchten, müssen Sie den String-Wert extrahieren und die Liste mit Trennzeichen erstellen. Dies ist auch ein Einliner in Java 8: 'String joined = iterableOfNonCharSequence.stream(). Map (Objekt -> Objekt.MethodToGetStringValue()). Collect (Collectors.joining (", "));' – gahrae

+0

StringJoiner ist auch eine nützliche Klasse zum Verknüpfen von Inhalten. Hier ist ein Beispielprogramm, das StringJoiner und Collectors.joining ... http://pastebin.com/i2YwJcZy# zeigt – gahrae

2

Wenn Sie nur die Liste der Elemente anmelden möchten, können Sie die Liste toString() Methode verwenden, die bereits alle verkettet die Listenelemente.

2

Wenn Sie Spring verwenden, können Sie die Methode StringUtils.join() verwenden, mit der Sie auch Präfix und Suffix angeben können.

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

Dies kann tatsächlich kopiert werden und es ist eine einzige Methode: https: //gist.github .com/Zhuinden/5d88caee5e184e2b6d5ced329618f086 – EpicPandaForce

3

Sie können verwenden: org.springframework.util.StringUtils;

Verwandte Themen