Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

323
Vistas
Construyendo una cadena a partir de una lista de una lista de cadenas

Prefiero tener esta forma fea de construir una cadena a partir de una lista como:

 val input = listOf("[A,B]", "[C,D]") val builder = StringBuilder() builder.append("Serialized('IDs((") for (pt in input) { builder.append(pt[0] + " " + pt[1]) builder.append(", ") } builder.append("))')")

El problema es que agrega una coma después del último elemento y si quiero evitar eso, necesito agregar otra si verifico en el bucle el último elemento.

Me pregunto si hay una forma más concisa de hacer esto en kotlin.

EDITAR

El resultado final debe ser algo como:

 Serialized('IDs((AB,CD))')
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En Kotlin puedes usar joinToString para este tipo de casos de uso (se trata de insertar el separador solo entre elementos).

Es muy versátil porque permite especificar una función de transformación para cada elemento (además de los más clásicos separator , prefix , postfix ). Esto hace que sea equivalente a asignar todos los elementos a cadenas y luego unirlos, pero en una sola llamada.

Si input es realmente una List<List<String>> como mencionas en el título y asumes en tu ciclo, puedes usar:

 input.joinToString( prefix = "Serialized('IDs((", postfix = "))')", separator = ", ", ) { (x, y) -> "$x $y" }

Tenga en cuenta que la sintaxis con (x, y) es una sintaxis de desestructuración que obtiene automáticamente el primer y segundo elemento de las listas dentro de su lista (los paréntesis son importantes).

Si su entrada es de hecho una List<String> como en listOf("[A,B]", "[C,D]") que escribió en la parte superior de su código, puede usar en su lugar:

 input.joinToString( prefix = "Serialized('IDs((", postfix = "))')", separator = ", ", ) { it.removeSurrounding("[", "]").replace(",", " ") }
over 4 years ago · Santiago Trujillo Denunciar

0

Kotlin proporciona una función de extensión [joinToString][1] (en Iterable ) para este tipo de propósito.

 input.joinToString(",", "Serialized('IDs((", "))')")

Esto agregará correctamente el separador.

over 4 years ago · Santiago Trujillo Denunciar

0

val input = listOf("[A,B]", "[C,D]") val result = "Serialized('IDs((" + input.joinToString(",") { it.removeSurrounding("[", "]").replace(",", " ") } + "))')" println(result) // Output: Serialized('IDs((AB,CD))')
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda