Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

322
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda