352 Stimmen

Der beste Weg, um eine ArrayList in eine Zeichenkette zu konvertieren

Ich habe eine ArrayList die ich vollständig als String ausgeben möchte. Im Wesentlichen möchte ich sie in der Reihenfolge ausgeben, in der die toString der einzelnen Elemente durch Tabulatoren getrennt. Gibt es eine schnelle Möglichkeit, dies zu tun? Sie könnten Schleife durch sie (oder entfernen Sie jedes Element) und verketten es zu einem String, aber ich denke, dies wird sehr langsam sein.

5voto

Pratyush Pranjal Punkte 532

In einer Zeile: Von [12,0,1,78,12] bis 12 0 1 78 12

String srt= list.toString().replaceAll("\\[|\\]|,","");

4voto

fmsf Punkte 35002
List<String> stringList = getMyListOfStrings();
StringJoiner sj = new StringJoiner(" ");
stringList.stream().forEach(e -> sj.add(e));
String spaceSeparated = sj.toString()

Sie übergeben an den new StringJoiner die Zeichenfolge, die als Trennzeichen verwendet werden soll. Wenn Sie eine CSV-Datei erstellen möchten: new StringJoiner(", ");

4voto

Wenn Sie nicht wollen, dass der letzte \t nach dem letzten Element müssen Sie den Index zur Überprüfung verwenden, aber denken Sie daran, dass dies nur "funktioniert" (d.h. O(n)), wenn lists den RandomAccess implementiert.

List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");

StringBuilder sb = new StringBuilder(list.size() * apprAvg); // every apprAvg > 1 is better than none
for (int i = 0; i < list.size(); i++) {
    sb.append(list.get(i));
    if (i < list.size() - 1) {
        sb.append("\t");
    }
}
System.out.println(sb.toString());

3voto

Srinivasan.S Punkte 2935

Der folgende Code könnte Ihnen helfen,

List list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
String str = list.toString();
System.out.println("Step-1 : " + str);
str = str.replaceAll("[\\[\\]]", "");
System.out.println("Step-2 : " + str);

出力します:

Step-1 : [1, 2, 3]
Step-2 : 1, 2, 3

3voto

Das ist vielleicht nicht der beste Weg, aber ein eleganter Weg.

Arrays.deepToString(Arrays.asList("Test", "Test2")

import java.util.Arrays;

    public class Test {
        public static void main(String[] args) {
            System.out.println(Arrays.deepToString(Arrays.asList("Test", "Test2").toArray()));
        }
    }

Ausgabe

[Test, Test2]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X