Modelos de string / interpolação
No Kotlin, você pode concatenar usando modelos / interpolação de string :
val a = "Hello"
val b = "World"
val c = "$a $b"
O resultado será: Hello World
Ou você pode concatenar usando StringBuilder
explicitamente.
val a = "Hello"
val b = "World"
val sb = StringBuilder()
sb.append(a).append(b)
val c = sb.toString()
print(c)
O resultado será: HelloWorld
Novo objeto String
Ou você pode concatenar usando o operador +
/ plus()
:
val a = "Hello"
val b = "World"
val c = a + b
print(c)
O resultado será: HelloWorld
- Isso criará um novo objeto String.
a.plus(b)
oua + b
e o mesmo bytecode é gerado"Hello" + "Word"
é tão eficiente quanto usar StringBuilder para anexar a uma stringsomeHelloStringBuilder.append("World")
?kotlin.String
tem umplus
método:Consulte https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html para obter detalhes.
fonte
+
operador é normal, não chama a função do operador traduzidoplus
... isso não é idiomáticoa = a.plus(b)
por exemploplus()
é menos prático do queStringBuilder
o método append de um ie.Eu concordo com a resposta aceita acima, mas só é válida para valores de string conhecidos. Para valores de string dinâmicos, aqui está minha sugestão.
// A list may come from an API JSON like { "names": [ "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
Isso é útil para concatenar lista de strings com separador.
fonte
Sim, você pode concatenar usando um
+
sinal. Kotlin tem modelos de string, então é melhor usá-los como:var fn = "Hello" var ln = "World"
"$fn $ln"
para concatenação.Você pode até usar o
String.plus()
método.fonte
+
operador é normal, não chama a função do operador traduzidoplus
... isso não é idiomáticoTente isto, acho que esta é uma maneira nativa de concatenar strings no Kotlin:
val result = buildString{ append("a") append("b") } println(result) // you will see "ab" in console.
fonte
buildString {
vez destringBuild {
Escrevi isso de forma semelhante à resposta @Rhusfer . Caso você tenha um grupo de se
EditText
deseja concatenar seus valores, você pode escrever:listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }
Se você deseja concatenar
Map
, use isto:map.entries.joinToString(separator = ", ")
Para concatenar
Bundle
, usebundle.keySet().joinToString(", ") { key -> "$key=${bundle[key]}" }
Ele classifica as chaves em ordem alfabética.
Exemplo:
val map: MutableMap<String, Any> = mutableMapOf("price" to 20.5) map += "arrange" to 0 map += "title" to "Night cream" println(map.entries.joinToString(separator = ", ")) // price=20.5, arrange=0, title=Night cream val bundle = bundleOf("price" to 20.5) bundle.putAll(bundleOf("arrange" to 0)) bundle.putAll(bundleOf("title" to "Night cream")) val bundleString = bundle.keySet().joinToString(", ") { key -> "$key=${bundle[key]}" } println(bundleString) // arrange=0, price=20.5, title=Night cream
fonte
Existem várias maneiras de concatenar strings no exemplo kotlin -
a = "Hello" , b= "World"
Usando o operador +
a+b
Usando o
plus()
operadora.plus(b)
Observação - + é convertido internamente apenas para o método .plus ()
Nos dois métodos acima, um novo objeto string é criado, pois as strings são imutáveis. se quisermos modificar a string existente, podemos usar StringBuilder
StringBuilder str = StringBuilder("Hello").append("World")
fonte
yourString + = "newString"
Desta forma, você pode concatenar uma string
fonte