Concaténer des cordes à Kotlin

Concaténer des cordes à Kotlin

1. introduction

Dans ce court didacticiel, nous allons étudier différentes manières de concaténer des chaînes dans Kotlin.

2. Utilisation de la méthodeplus()

La classeString de Kotlin contient une méthodeplus():

operator fun plus(other: Any?): String (source)

It returns a String obtained by concatenating reference String with the String passed as an argument.

Par exemple:

@Test
fun givenTwoStrings_concatenateWithPlusMethod_thenEquals() {
    val a = "Hello"
    val b = "example"
    val c = a.plus(" ").plus(b)

    assertEquals("Hello example", c)
}

De plus, il est important de se rendre compte que si l’objet passé n’est pas unString, la représentationString de l’objet sera utilisée.

3. Utilisation de l'opérateur+

La manière la plus simple de concaténerStrings dans Kotlin est d'utiliser l'opérateur+. En conséquence, nous obtenons unnew String object composed of Strings on the left and the right side of the operator:

@Test
fun givenTwoStrings_concatenateWithPlusOperator_thenEquals() {
    val a = "Hello"
    val b = "example"
    val c = a + " " + b

    assertEquals("Hello example", c)
}

Un autre point clé est que dans Kotlin, grâce àoperator overload, l'opérateur + est résolu en méthodeplus().

En général, il s'agit d'une méthode courante pour concaténer de petits nombres deStrings.

4. Utilisation deStringBuilder

Comme nous le savons, les objetsString sont immuables. Avec chaque concaténation utilisant l'opérateur+ ou la méthodeplus(), nous obtenons un nouvel objetString. En revanche, pour éviter la création d'objetsString inutiles, nous pouvons utiliser unStringBuilder.

Par conséquent,StringBuilder creates a single internal buffer that contains the final string.

Par conséquent,StringBuilder est plus efficace lors de la concaténation d'un grand nombre de chaînes.

Voici un exemple de concaténationString utilisantStringBuilder:

@Test
fun givenTwoStrings_concatenateWithStringBuilder_thenEquals() {
    val builder = StringBuilder()
    builder.append("Hello")
           .append(" ")
           .append("example")

    assertEquals("Hello example", builder.toString())
}

Enfin, nous pouvons utiliserStringBuffer pour la concaténation thread-safe au lieu deStringBuilder.

5. Utilisation de modèles de chaînes

Kotlin a également une fonctionnalité appelée les modèlesString. String templates contain expressions that get evaluated to build a String.

Les expressions du modèleString commencent par un signe dollar suivi du nom de la variable.

Voici un exemple de concaténation deString utilisant des modèles:

@Test
fun givenTwoStrings_concatenateWithTemplates_thenEquals() {
    val a = "Hello"
    val b = "example"
    val c = "$a $b"

    assertEquals("Hello example", c)
}

Le compilateur Kotlin traduit ce code en:

new StringBuilder().append(a).append(" ").append(b).toString()

Enfin, ce processus estString interpolation.

6. Conclusion

Dans cet article, nous avons appris quelques façons de concaténer les objetsString dans Kotlin.

Comme toujours, tout le code présenté dans ce tutoriel peut être trouvéover on GitHub.