Concatenar seqüências de caracteres em Kotlin

Concatenar seqüências de caracteres em Kotlin

1. Introdução

Neste breve tutorial, vamos investigar diferentes maneiras de concatenar strings no Kotlin.

2. Usando o métodoplus()

A classeString de Kotlin contém um métodoplus():

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

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

Por exemplo:

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

    assertEquals("Hello example", c)
}

Além disso, é importante perceber que se o objeto passado não for umString, a representaçãoString do objeto será usada.

3. Usando o operador+

A maneira mais simples de concatenarStrings em Kotlin é usar o operador+. Como resultado, obtemos umnew 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)
}

Outro ponto chave é que em Kotlin, graças aoperator overload, o operador + é resolvido para o métodoplus().

Em geral, este é um método comum para concatenar pequenos números deStrings.

4. UsandoStringBuilder

Como sabemos, os objetosString são imutáveis. Com cada concatenação usando o operador+ ou métodoplus(), obtemos um novo objetoString. Em contraste, para evitar a criação desnecessária do objetoString, podemos usar aStringBuilder.

Portanto,StringBuilder creates a single internal buffer that contains the final string.

Portanto,StringBuilder é mais eficiente ao concatenar um grande número de strings.

Aqui está um exemplo de concatenaçãoString usandoStringBuilder:

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

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

Finalmente, podemos usarStringBuffer para concatenação thread-safe em vez deStringBuilder.

5. Usando modelos de string

O Kotlin também possui um recurso chamado modelosString. String templates contain expressions that get evaluated to build a String.

As expressões de modeloString começam com um cifrão seguido pelo nome da variável.

Aqui está um exemplo de concatenaçãoString usando modelos:

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

    assertEquals("Hello example", c)
}

O compilador Kotlin converte esse código em:

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

Finalmente, este processo éString interpolation.

6. Conclusão

Neste artigo, aprendemos algumas maneiras de concatenar objetosString em Kotlin.

Como sempre, todo o código apresentado neste tutorial pode ser encontradoover on GitHub.