Ich habe die Java8 String api Dokumentation schnell gelesen.
Jetzt bin ich ein bisschen neugierig auf die String.join () -Methode, um Zeichenketten zu erstellen / zu verbinden.
Diese Art von Beispiel hat mir jedoch geholfen, besser zu verstehen:
%Vor%Dennoch verstehe ich nicht, welchen ich verwenden soll. Gibt es irgendwelche Leistungs-oder andere Unterschiede zwischen diesen beiden Prozessen.
Jede Hilfe würde sehr geschätzt werden.
String.join
basiert auf der Klasse StringJoiner
, die selbst beruht auf einem internen StringBuilder
, um die verbundene Zeichenfolge zu erstellen.
Es ist also leistungsmäßig ähnlich wie die Verwendung von StringBuilder
und Anhängen an es oder die Verwendung einer Kette von +
(die heutzutage vom Compiler in StringBuilder
-Operationen konvertiert werden).
Aber die Bedeutung von String.join
ist kein allgemeiner Ersatz für +
oder String.concat
, sondern die "umgekehrte Operation" einer Operation String.split
. Es macht mehr Sinn in diesem Kontext - wenn Sie eine Reihe von Strings haben, die Sie mit einem Trennzeichen verbinden möchten - als Ersatz für concat
.
Das heißt, eine Ausgabe wie "a/b/c/d"
oder "(a+b+c+d)"
zu erstellen, wenn Sie a
, b
, c
und d
in einem Array oder einer Liste, String.join
oder% co_de haben % würde die Operation klar und lesbar machen.
str1 + " " + str2
wird intern in Folgendes konvertiert:
str1.concat(str2)
wird nicht das selbe Ergebnis erzeugen, da das Leerzeichen zwischen den beiden Zeichenfolgen nicht vorhanden ist.
join sollte äquivalent zu
sein %Vor%und daher schneller sein.