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.