it-swarm.com.de

Die beste Möglichkeit, eine Liste in eine durch Kommas getrennte Zeichenfolge in java zu konvertieren

Ich habe Set<String> result möchte es in eine durch Kommas getrennte Zeichenfolge konvertieren. Mein Ansatz wäre wie unten gezeigt, aber ich suche auch nach einer anderen Meinung.

List<String> slist = new ArrayList<String> (result);
StringBuilder rString = new StringBuilder();

Separator sep = new Separator(", ");
//String sep = ", ";
for (String each : slist) {
    rString.append(sep).append(each);
}

return rString;
141
Mad-D

Aus der Apache Commons-Bibliothek:

import org.Apache.commons.lang3.StringUtils

Verwenden:

StringUtils.join(slist, ',');

Eine andere ähnliche Frage und Antwort hier

382
BobTheBuilder

Sie können die Gesamtlänge der Zeichenfolge zuerst zählen und an den StringBuilder-Konstruktor übergeben. Und Sie müssen das Set nicht erst konvertieren.

Set<String> abc = new HashSet<String>();
abc.add("A");
abc.add("B");
abc.add("C");

String separator = ", ";
int total = abc.size() * separator.length();
for (String s : abc) {
    total += s.length();
}

StringBuilder sb = new StringBuilder(total);
for (String s : abc) {
    sb.append(separator).append(s);
}

String result = sb.substring(separator.length()); // remove leading separator
9
kay

Das Separator, das Sie verwenden, ist eine UI-Komponente. Sie würden besser mit einem einfachen String sep = ", ".

4
Dan D.