Une question très basique, quelle est la bonne façon de concaténer une chaîne dans Kotlin?
En Java, vous utiliseriez la concat()
méthode, par exemple
String a = "Hello ";
String b = a.concat("World"); // b = Hello World
La concat()
fonction n'est cependant pas disponible pour Kotlin. Dois-je utiliser le +
signe?
a.plus(b)
oua + b
et le même bytecode est généré"Hello" + "Word"
est tout aussi performante que l'utilisation de StringBuilder pour ajouter à une chaînesomeHelloStringBuilder.append("World")
,?kotlin.String
a uneplus
méthode:Voir https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html pour plus de détails.
la source
+
opérateur est normal, n'appelant pas la fonction d'opérateur traduitplus
... ce n'est pas idiomatiquea = a.plus(b)
par exempleplus()
sont moins pratiques queStringBuilder
la méthode d 'append d'.Oui, vous pouvez concaténer à l'aide d'un
+
signe. Kotlin a des modèles de chaînes, il est donc préférable de les utiliser comme:var fn = "Hello" var ln = "World"
"$fn $ln"
pour la concaténation.Vous pouvez même utiliser la
String.plus()
méthode.la source
+
opérateur est normal, n'appelant pas la fonction d'opérateur traduitplus
... ce n'est pas idiomatiqueJe suis d'accord avec la réponse acceptée ci-dessus, mais elle n'est bonne que pour les valeurs de chaîne connues. Pour les valeurs de chaîne dynamiques, voici ma suggestion.
// 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
Ceci est utile pour concaténer une liste de chaînes avec séparateur.
la source
Similaire à la réponse @Rhusfer, j'ai écrit ceci. Si vous avez un groupe de
EditText
s et souhaitez concaténer leurs valeurs, vous pouvez écrire:listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }
Si vous souhaitez concaténer
HashMap
, utilisez ceci:map.entries.joinToString(separator = ", ") // Result: // id=123, name=John, surname=Smith
la source
Essayez ceci, je pense que c'est un moyen natif de concaténer des chaînes dans Kotlin:
val result = buildString{ append("a") append("b") } println(result) // you will see "ab" in console.
la source
buildString {
au lieu destringBuild {
Il existe différentes manières de concaténer des chaînes dans kotlin Exemple -
a = "Hello" , b= "World"
Utilisation de l'opérateur +
a+b
Utilisation de l'
plus()
opérateura.plus(b)
Remarque - + est converti en interne en méthode .plus () uniquement
Dans les 2 méthodes ci-dessus, un nouvel objet chaîne est créé car les chaînes sont immuables. si nous voulons modifier la chaîne existante, nous pouvons utiliser StringBuilder
StringBuilder str = StringBuilder("Hello").append("World")
la source
yourString + = "newString"
De cette façon, vous pouvez concaténer une chaîne
la source