Eine sehr grundlegende Frage: Wie kann ein String in Kotlin richtig verkettet werden?
In Java würden Sie die concat()
Methode verwenden, z
String a = "Hello ";
String b = a.concat("World"); // b = Hello World
Die concat()
Funktion ist für Kotlin jedoch nicht verfügbar. Soll ich das +
Schild benutzen ?
a.plus(b)
odera + b
derselbe Bytecode generiert wird"Hello" + "Word"
genauso performant ist wie die Verwendung von StringBuilder zum Anhängen an einen StringsomeHelloStringBuilder.append("World")
?kotlin.String
hat eineplus
Methode:Weitere Informationen finden Sie unter https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html .
quelle
+
Operator ist normal und ruft die übersetzte Operatorfunktion nicht aufplus
... dies ist nicht idiomatischa = a.plus(b)
zum Beispielplus()
weniger praktisch alsStringBuilder
die Append-Methode von a, d. H.Ja, Sie können mit einem
+
Zeichen verketten . Kotlin hat String-Vorlagen, daher ist es besser, sie wie folgt zu verwenden:var fn = "Hello" var ln = "World"
"$fn $ln"
zur Verkettung.Sie können sogar
String.plus()
Methode verwenden.quelle
+
Operator ist normal und ruft die übersetzte Operatorfunktion nicht aufplus
... dies ist nicht idiomatischIch stimme der oben akzeptierten Antwort zu, aber sie gilt nur für bekannte Zeichenfolgenwerte. Für dynamische Zeichenfolgenwerte ist hier mein Vorschlag.
// A list may come from an API JSON like { "names": [ "Person 1", "Person 2", "Person 3", ... "Person N" ] } var listOfNames = mutableListOf<String>() val stringOfNames = listOfNames.joinToString(", ") // ", " <- a separator for the strings, could be any string that you want // Posible result // Person 1, Person 2, Person 3, ..., Person N
Dies ist nützlich, um die Liste der Zeichenfolgen mit einem Trennzeichen zu verketten.
quelle
Ähnlich wie bei @Rhusfer Antwort habe ich dies geschrieben. Wenn Sie eine Gruppe von
EditText
s haben und deren Werte verketten möchten, können Sie schreiben:listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }
Wenn Sie verketten möchten
HashMap
, verwenden Sie Folgendes :map.entries.joinToString(separator = ", ") // Result: // id=123, name=John, surname=Smith
quelle
Versuchen Sie dies, ich denke, dies ist eine native Möglichkeit, Zeichenfolgen in Kotlin zu verketten:
val result = buildString{ append("a") append("b") } println(result) // you will see "ab" in console.
quelle
buildString {
stattstringBuild {
Es gibt verschiedene Möglichkeiten, Zeichenfolgen in Kotlin zu verketten. Beispiel -
a = "Hello" , b= "World"
Verwenden des Operators +
a+b
Mit
plus()
Operatora.plus(b)
Hinweis - + wird intern nur in die .plus () -Methode konvertiert
In den obigen 2 Methoden wird ein neues Zeichenfolgenobjekt erstellt, da Zeichenfolgen unveränderlich sind. Wenn wir die vorhandene Zeichenfolge ändern möchten, können wir StringBuilder verwenden
StringBuilder str = StringBuilder("Hello").append("World")
quelle
yourString + = "newString"
Auf diese Weise können Sie eine Zeichenfolge verketten
quelle