@ Princeyesuraj, die offizielle Antwort liefert adarshr . Wenn Sie ein eigenes Trennzeichen möchten, können Sie die Antwort von JoeSlav ausprobieren. Wenn kein Thread-Problem vorliegt , können Sie aus Effizienzgründen StringBuilder anstelle von StringBuffer verwenden. Die Antwort von krock ist gut, aber meiner Meinung nach ein bisschen übertrieben.
Dante May Code
Antworten:
469
Wenn Sie nur einen "Debug-Stil" -Dump eines Arrays möchten:
String str =Arrays.toString(arr);
oder für mehr Kontrolle (vor Java 8):
StringBuilder builder =newStringBuilder();for(String s : arr){
builder.append(s);}String str = builder.toString();
(Java 8 und höher):
String str =String.join(",", arr);
Und wenn Sie aus dem Android-Blickwinkel kommen:
String str =TextUtils.join(",", arr);
Sie können die obigen Angaben ändern, je nachdem, welche Zeichen zwischen den Zeichenfolgen gegebenenfalls gewünscht werden.
Möglicherweise sehen Sie nahezu identischen Code wie der Code vor Java 8, verwenden jedoch StringBuffer- StringBuilderist eine neuere Klasse, die nicht threadsicher ist, jedoch eine bessere Leistung in einem einzelnen Thread aufweist, da nicht benötigte Synchronisierungen vermieden werden. Kurz gesagt, Sie verwenden es StringBuilderin 99% der Fälle besser - in Bezug auf die Funktionalität sind beide identisch.
NICHT eine Zeichenfolge verwenden und nur append , um es mit + = wie einige der Antworten hier zeigen. Dadurch wird der GC durch das Dach gesendet, da Sie so viele Zeichenfolgenobjekte erstellen und wegwerfen, wie Sie Elemente in Ihrem Array haben. Bei kleinen Arrays fällt der Unterschied möglicherweise nicht wirklich auf, bei großen kann er jedoch um Größenordnungen langsamer sein.
Verwenden Sie Apache Commons StringUtils.join(). Es nimmt ein Array als Parameter (und hat auch Überladungen für Iterableund IteratorParameter) und ruft toString()jedes Element auf (wenn es nicht null ist), um die Zeichenfolgendarstellung jedes Elements abzurufen. Jede Element-Zeichenfolgendarstellung wird dann zu einer Zeichenfolge mit einem dazwischen liegenden Trennzeichen verbunden, sofern eines angegeben ist:
Gibt eine Zeichenfolgendarstellung des "tiefen Inhalts" des angegebenen Arrays zurück. Wenn das Array andere Arrays als Elemente enthält, enthält die Zeichenfolgendarstellung deren Inhalt usw. Diese Methode dient zum Konvertieren mehrdimensionaler Arrays in Zeichenfolgen
Wenn Sie nicht viel Kontrolle benötigen, ist dies meiner Meinung nach die einfachste Lösung, da Sie keine Drittanbieter-Bibliothek benötigen. Hier ein Beispiel: System.out.println (Arrays.deepToString (args));
Sie möchten Code, der eine Zeichenfolge aus arrayList erzeugt.
Iterate through all elements in list and add it to your String result
Sie können dies auf zwei Arten tun: Verwenden von String als Ergebnis oder StringBuffer / StringBuilder.
Beispiel:
String result ="";for(String s : list){
result += s;}
... aber dies ist aus Leistungsgründen keine gute Praxis. Besser ist es, StringBuffer (threadsicher) oder StringBuilder zu verwenden, die besser zum Hinzufügen von Strings geeignet sind
Ihre Antwort ist im Grunde die gleiche wie smas; nur etwas komplizierter; also sicher nicht "der einfachste". Außerdem ist Arrays.toString () noch einfacher.
GhostCat
-22
Wenn Sie wissen, wie viele Elemente das Array enthält, können Sie dies auf einfache Weise tun:
array.toString()
? Sei genauer.Antworten:
Wenn Sie nur einen "Debug-Stil" -Dump eines Arrays möchten:
oder für mehr Kontrolle (vor Java 8):
(Java 8 und höher):
Und wenn Sie aus dem Android-Blickwinkel kommen:
Sie können die obigen Angaben ändern, je nachdem, welche Zeichen zwischen den Zeichenfolgen gegebenenfalls gewünscht werden.
Möglicherweise sehen Sie nahezu identischen Code wie der Code vor Java 8, verwenden jedoch
StringBuffer
-StringBuilder
ist eine neuere Klasse, die nicht threadsicher ist, jedoch eine bessere Leistung in einem einzelnen Thread aufweist, da nicht benötigte Synchronisierungen vermieden werden. Kurz gesagt, Sie verwenden esStringBuilder
in 99% der Fälle besser - in Bezug auf die Funktionalität sind beide identisch.NICHT eine Zeichenfolge verwenden und nur append , um es mit + = wie einige der Antworten hier zeigen. Dadurch wird der GC durch das Dach gesendet, da Sie so viele Zeichenfolgenobjekte erstellen und wegwerfen, wie Sie Elemente in Ihrem Array haben. Bei kleinen Arrays fällt der Unterschied möglicherweise nicht wirklich auf, bei großen kann er jedoch um Größenordnungen langsamer sein.
quelle
Arrays.toString(yourArray);
aber ich denke, Sie verwendetyourArray.toString();
1.8
Sie auchString::join
anstelle der for-Schleife verwenden.String.join("", arr);
Verwenden Sie Apache Commons
StringUtils.join()
. Es nimmt ein Array als Parameter (und hat auch Überladungen fürIterable
undIterator
Parameter) und rufttoString()
jedes Element auf (wenn es nicht null ist), um die Zeichenfolgendarstellung jedes Elements abzurufen. Jede Element-Zeichenfolgendarstellung wird dann zu einer Zeichenfolge mit einem dazwischen liegenden Trennzeichen verbunden, sofern eines angegeben ist:Produziert:
quelle
Ich verwende dafür gerne Googles Guava Joiner , z.
würde den gleichen String erzeugen wie:
ETA: Java 8 unterstützt jetzt ähnlich:
Unterstützung für das Überspringen von Nullwerten wird nicht angezeigt, aber das lässt sich leicht umgehen.
quelle
null
wären , wäre "er, dessen Name nicht erwähnt werden darf" :-)Joiner.on(", ").useForNull("Voldemort").join("Harry", null, "Ron", "Hermione");
String.join(", ", "Harry", null, "Ron", "Hermione").replaceAll("null", "Voldermart");
Sie können dies bei einem Array
a
primitiven Typs tun :quelle
Von Java 8 aus denke ich am einfachsten:
Auf diese Weise können Sie ein beliebiges Trennzeichen auswählen.
quelle
Probieren Sie die Arrays.deepToString- Methode aus.
Gibt eine Zeichenfolgendarstellung des "tiefen Inhalts" des angegebenen Arrays zurück. Wenn das Array andere Arrays als Elemente enthält, enthält die Zeichenfolgendarstellung deren Inhalt usw. Diese Methode dient zum Konvertieren mehrdimensionaler Arrays in Zeichenfolgen
quelle
Probieren Sie die überladenen Methoden Arrays.toString aus .
Oder versuchen Sie Folgendes unter der allgemeinen Implementierung:
quelle
Im Folgenden finden Sie ein Beispiel für die Konvertierung von Array in String.
quelle
Wenn Sie nicht die Wahl haben, aber Java 6 oder 7 zu verwenden, sollten Sie Divide & Conquer Join verwenden.
quelle
Sie möchten Code, der eine Zeichenfolge aus arrayList erzeugt.
Sie können dies auf zwei Arten tun: Verwenden von String als Ergebnis oder StringBuffer / StringBuilder.
Beispiel:
... aber dies ist aus Leistungsgründen keine gute Praxis. Besser ist es, StringBuffer (threadsicher) oder StringBuilder zu verwenden, die besser zum Hinzufügen von Strings geeignet sind
quelle
Verwenden Sie die Join-Methode der StringUtils-Bibliothek von Apache Commons .
quelle
quelle
Wenn Sie wissen, wie viele Elemente das Array enthält, können Sie dies auf einfache Weise tun:
quelle