web-dev-qa-db-fra.com

Kotlin - Comment concaténer correctement une chaîne

Une question très basique, quelle est la bonne façon de concaténer une chaîne dans Kotlin?

Dans Java, vous utiliseriez la méthode concat(), par exemple.

String a = "Hello ";
String b = a.concat("World"); // b = Hello World

La fonction concat() n'est pas disponible pour Kotlin. Dois-je utiliser le signe +?

66
Daniele

En Kotlin, vous pouvez concaténer à l'aide de interpolation de chaînes/modèles :

val a = "Hello"
val b = "World"
val c = "$a $b"

Le résultat sera: Hello World

Vous pouvez également concaténer à l’aide de l’opérateur +/ plus() :

val a = "Hello"
val b = "World"
val c = a + b   // same as calling operator function a.plus(b)

print(c)

La sortie sera: HelloWorld

Ou vous pouvez concaténer en utilisant StringBuilder .

val a = "Hello"
val b = "World"

val sb = StringBuilder()
sb.append(a).append(b)
val c = sb.toString()

print(c)

La sortie sera: HelloWorld

110
Avijit Karmakar

kotlin.String a une méthode plus:

a.plus(b)

Voir https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html pour plus de détails.

12
Harald Gliebe

Oui, vous pouvez concaténer à l’aide du signe +. Kotlin a des modèles de chaîne, 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 méthode String.plus().

7
Tushar

Je suis d'accord avec la réponse acceptée ci-dessus, mais ce n'est valable que pour les valeurs de chaîne connues. Voici ma suggestion pour les valeurs de chaîne dynamiques.

// A list may come from an API JSON like
{
   "persons": {
      "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 un séparateur.

6
Rhusfer

Semblable à @Rhusfer répondre j'ai écrit ceci. Si vous avez un groupe de EditTexts et souhaitez concaténer leurs valeurs, vous pouvez écrire:

listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }
2
CoolMind

Il y a différentes façons de concaténer des chaînes dans kotlin Exemple -

a = "Hello" , b= "World"
  1. Utilisation de l'opérateur + a+b

  2. Utilisation de l'opérateur plus()

    a.plus(b)

Remarque - + est converti en interne en méthode .plus () uniquement

Dans les méthodes ci-dessus 2, 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")
1
Shradha Sangtani