Una pregunta muy básica, ¿cuál es la forma correcta de concatenar una cadena en Kotlin?
En Java, usaría el concat()
método, por ejemplo
String a = "Hello ";
String b = a.concat("World"); // b = Hello World
Sin concat()
embargo, la función no está disponible para Kotlin. ¿Debería usar el +
letrero?
a.plus(b)
oa + b
y se genera el mismo bytecode"Hello" + "Word"
es tan eficaz como usar StringBuilder para agregar una cadenasomeHelloStringBuilder.append("World")
,?kotlin.String
tiene unplus
método:Consulte https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/plus.html para obtener más detalles.
fuente
+
operador es normal, no llama a la función de operador traducidaplus
... esto no es idiomáticoa = a.plus(b)
por ejemploplus()
es menos práctico queStringBuilder
el método de adición de a, es decir.Sí, puede concatenar mediante un
+
signo. Kotlin tiene plantillas de cadenas, por lo que es mejor usarlas como:var fn = "Hello" var ln = "World"
"$fn $ln"
para la concatenación.Incluso puedes usar el
String.plus()
método.fuente
+
operador es normal, no llama a la función de operador traducidaplus
... esto no es idiomáticoEstoy de acuerdo con la respuesta aceptada anterior, pero solo es buena para valores de cadena conocidos. Para valores de cadena dinámicos, aquí está mi sugerencia.
// 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
Esto es útil para concatenar listas de cadenas con separador.
fuente
Similar a la respuesta de @Rhusfer , escribí esto. En caso de que tenga un grupo de
EditText
sy desee concatenar sus valores, puede escribir:listOf(edit_1, edit_2, edit_3, edit_4).joinToString(separator = "") { it.text.toString() }
Si desea concatenar
HashMap
, use esto:map.entries.joinToString(separator = ", ") // Result: // id=123, name=John, surname=Smith
fuente
Pruebe esto, creo que esta es una forma nativa de concatenar cadenas en Kotlin:
val result = buildString{ append("a") append("b") } println(result) // you will see "ab" in console.
fuente
buildString {
lugar destringBuild {
Hay varias formas de concatenar cadenas en el ejemplo de kotlin:
a = "Hello" , b= "World"
Usando + operador
a+b
plus()
Operador de usoa.plus(b)
Nota - + se convierte internamente al método .plus () solamente
En los 2 métodos anteriores, se crea un nuevo objeto de cadena ya que las cadenas son inmutables. si queremos modificar la cadena existente, podemos usar StringBuilder
StringBuilder str = StringBuilder("Hello").append("World")
fuente
yourString + = "newString"
De esta forma puedes concatenar una cadena
fuente