Concatenate Strings em Kotlin … Nos bastidores

Tempo de leitura: 3 minutes

Estou escrevendo este artigo em uma situação em que o mundo inteiro está bloqueado devido à Covid-19, mas os desenvolvedores não param de trabalhar

 

Kotlin está se tornando a linguagem mais admirável para programadores devido à simplicidade do código, ajuda a evitar NullPointerException mais renomado, um clique em Java → conversor de código Kotlin, interoperabilidade, classes de dados e muito mais. Ele se tornou famoso em 2016, quando o Google Developers lançou oficialmente o Kotlin para o desenvolvimento do Android.

 

Neste breve tópico, cobriremos algumas das melhores implementações de concatenação em strings e também revelaremos qual método é melhor. Então, vamos começar a identificar a resposta a esta pergunta.

 

‘+’ Operator:

Se pudermos olhar para trás, em nossos velhos tempos de programação, geralmente usamos o operador + para fazer a concatenação. Portanto, o cenário é o mesmo aqui.

val firstName = "Oi"
val lastName = "Sim"
val result = firstName + lastName

println(result) // Oi Sim

Neste método, a string resultante contém dois objetos de uma string, um está no lado direito do operador e o outro está no lado esquerdo.

 

Método plus():

De acordo com a fonte oficial: os operadores plus (+) e minus (-) são definidos para coleções. Eles consideram uma coleção como o primeiro operando; o segundo operando pode ser um elemento ou outra coleção.

operator fun plus(other: Any?): String

Na concatenação, o método plus () combina a sequência de inicialização com outro literal que pode ser de qualquer tipo e retornar um novo objeto de sequência. Está funcionando como um trabalho de sobrecarga do operador.

val firstName = "Oi" 
val lastName = "Sim"

// 01 - Exemplo
val result01 = firstName.plus(lastName)
println(result01) // Oi Sim

// 02 - Exemplo
val result02 = "Meu Nome é ".plus(result01)
println(result02) // Meu Nome é Oi Sim

// 03 - Exemplo
val result03 = result02.plus("Registro-").plus(1000)
println(result03) // Meu Nome é Oi Sim Registro-1000

// 04 - Exemplo
val result04 = "Ana é ".plus(10.div(2))
println(result04) // Ana é 5

Mais importante ainda, se o objeto passado não for uma string, ele usará a representação da string desse objeto.

 

Template String:

O outro recurso mais poderoso que o kotlin oferece é um modelo String. Neste método, a string literal contém outra expressão que pode ser de qualquer tipo de dados, como o método plus () do. Você também pode definir a lógica em um modelo de string.

val firstName = "Oi" 
val lastName = "Sim" 

// 01 - Exemplo 
val result01 = "$firstName $lastName" 
println(result01) // Oi Sim 

// 02 - Exemplo 
val result02 = "Meu Nome é $firstName $lastName Registro-$(1000)"
println(result02) // Meu Nome é Oi Sim Registro-1000 

// 03 - Exemplo 
val result03 = ${if(firstName === "Oi") 1001 else 0} 
println(result03) // 1000

O modelo de string segue o processo de interpolação de string.

 

StringBuilder:

Desde o JDK 1.5 até o estágio atual, nós nos entregamos principalmente ao StringBuilder por causa de sua funcionalidade para criar strings mutáveis ​​(modificáveis) e não sincronizadas.

Agora, Kotlin fornece StringBuilder com os mesmos recursos que tinha em java. Se fizermos uma comparação entre os diferentes métodos de concatenação como plus () ou + Operator que cria uma string imutável enquanto StringBuilder cria uma string mutável.

val firstName = "Oi" 
val lastName = "Sim" 

// 01 - Exemplo 
val result01 = StringBuilder(firstName).append(" ").append(lastName)
println(result01) // Oi Sim 

// 02 - Exemplo 
val result02 = StringBuilder("Meu Nome é ").append(firstName).append(" ").append(lastName).append("Registro-").append(1000)
println(result02) // Meu Nome é Oi Sim Registro-1000 

StringBuilder usa o método append() para concatenar. A string concatenada seria um tipo ou combinação de vários tipos. É eficiente concatenar um grande número de strings.

Método joinToString

Outro método Kotlin poderoso usado para coleções e matrizes. O método pode converter qualquer tipo de lista em uma string usando o separador e o prefix e o postfix fornecidos, se fornecido.

val number = listOf(1,2,3,4,5,6)

// 01 - Exemplo
println(number.jointToString()) // 1,2,3,4,5,6

// 02 - Exemplo 
println(number.joinToString(prefix = "[", postfix = "]")) // [1,2,3,4,5,6]

// 03 - Exemplo 
println(number.joinToString(prefix = "<", postfix = ">", separator = ".")) // <1.2.3.4.5.6>

Se a coleção fornecida for muito grande, você pode especificar um valor não negativo de limite, caso em que apenas os primeiros elementos de limite serão considerados, seguidos pela string truncada (cujo padrão é “…”).

val chars = charArrayOf('a','b','c','d','e', 'f', 'g', 'h', 'j', 'l', 'm', 'n')

println(chars.joinToString(limit = 5, truncated = "...!") {it.toUpperCase().toString()} ) // A, B, C, D, E, ...!

Muito obrigado ao compilador online Kotlin que me ajudou muito enquanto escrevo este artigo para executar o código facilmente antes de colá-lo aqui

 

Espero que este artigo tenha sido útil para cobrir as questões básicas sobre a concatenação de strings e explorar os benefícios por trás dela. Siga-me no twitter, facebook e instagram para mais atualizações.