Ich'bin ein bisschen verwirrt. Ich konnte die Antwort nirgends finden ;(
I've got an String array:
String[] arr = ["1", "2", "3"];
dann konvertiere ich es in einen String durch:
String str = Arrays.toString(arr);
System.out.println(str);
Ich hatte erwartet, die Zeichenkette "123"
zu erhalten, aber stattdessen erhielt ich die Zeichenkette "[1,2,3]"
.
Wie könnte ich das in Java machen? Ich benutze Eclipse IDE
String[] strArr = {"1", "2", "3"};
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < strArr.length; i++) {
strBuilder.append(strArr[i]);
}
String newString = strBuilder.toString();
Hier's, warum dies eine bessere Lösung als die Verwendung der String-Verkettung ist: Wenn Sie 2 Strings verketten, wird ein neues String-Objekt erstellt und Zeichen für Zeichen kopiert. Das bedeutet, dass die Komplexität des Codes in der Größenordnung des Quadrats der Größe Ihres Arrays liegen würde!
(1+2+3+ ... n
, das ist die Anzahl der pro Iteration kopierten Zeichen).
Der StringBuilder würde in diesem Fall das Kopieren in eine Zeichenkette nur einmal durchführen und damit die Komplexität auf O(n)
reduzieren.
Arrays.toString(arr);
Die Ausgabe ist [1,2,3] und Sie speichern sie in Ihrer Zeichenkette . und geben sie aus, so dass Sie die Ausgabe [1,2,3] erhalten.
Wenn Sie die Ausgabe 123 erhalten möchten, versuchen Sie dies:
public static void main(String[] args) {
String[] arr= {"1","2","3"};
String output ="";
for(String str: arr)
output=output+str;
System.out.println(output);
}
Ausgabe:
123