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.

3voto

Craig P. Motlin Punkte 26028

Wenn Sie Folgendes verwenden Eclipse-Kollektionen können Sie die makeString() Methode.

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

Assert.assertEquals(
    "one\ttwo\tthree",
    ArrayListAdapter.adapt(list).makeString("\t"));

Wenn Sie Ihre ArrayList zu einer FastList können Sie sich des Adapters entledigen.

Assert.assertEquals(
    "one\ttwo\tthree",
    FastList.newListWith("one", "two", "three").makeString("\t"));

Anmerkung: Ich bin ein Committer für Eclipse Collections.

3voto

Beezer Punkte 985

Wäre das folgende gut?

List<String> streamValues = new ArrayList<>();
Arrays.deepToString(streamValues.toArray()));

2voto

chopss Punkte 761

Zur Trennung mit Tabulatoren statt mit println können Sie drucken

ArrayList<String> mylist = new ArrayList<String>();

mylist.add("C Programming");
mylist.add("Java");
mylist.add("C++");
mylist.add("Perl");
mylist.add("Python");

for (String each : mylist)
{       
    System.out.print(each);
    System.out.print("\t");
}

1voto

Elliander Punkte 493

Ich sehe einige Beispiele, die auf zusätzliche Ressourcen angewiesen sind, aber es scheint, wie dies die einfachste Lösung wäre: (das ist, was ich in meinem eigenen Projekt verwendet), die im Grunde nur von einem ArrayList zu einem Array und dann zu einer Liste konvertieren.

    List<Account> accounts = new ArrayList<>();

   public String accountList() 
   {
      Account[] listingArray = accounts.toArray(new Account[accounts.size()]);
      String listingString = Arrays.toString(listingArray);
      return listingString;
   }

0voto

Vikrant Goel Punkte 604

Hierfür können Sie eine Regex verwenden. Dies ist so knapp wie möglich

System.out.println(yourArrayList.toString().replaceAll("\\[|\\]|[,][ ]","\t"));

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