Menu
Coddy logo textTech

Dividir y unir

Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 4 de 56.

Dos herramientas cotidianas para trabajar con texto delimitado. Ambas provienen de Foundation, que ya está importado.

components(separatedBy:) divide una cadena en un arreglo de Strings según el delimitador que pases:

let csv = "red,green,blue"
let parts = csv.components(separatedBy: ",")
print(parts)                       // ["red", "green", "blue"]

Lo inverso es joined(separator:) en cualquier [String]:

let words = ["swift", "is", "fun"]
let line = words.joined(separator: " ")
print(line)                        // "swift is fun"

A menudo los combinarás: dividirlos, transformarlos con map y volverlos a unir. El resultado de map en un [String] sigue siendo un [String], por lo que joined funciona directamente.

challenge icon

Desafío

Fácil

Lee una sola línea de entrada: una lista de palabras separadas por comas.

Imprime tres líneas:

  1. El número de palabras después de dividir por ,
  2. Las palabras reunidas con > (espacio, mayor que, espacio), en mayúsculas
  3. La palabra más larga de la lista (después de dividir). Si dos palabras empatan, usa la que aparece primero.

Para la entrada red,green,blue, la salida es:

3
RED > GREEN > BLUE
green

Hoja de referencia

Divide una cadena en un array usando components(separatedBy:):

let parts = "red,green,blue".components(separatedBy: ",")
// ["red", "green", "blue"]

Vuelve a unir un array de cadenas usando joined(separator:):

let line = ["swift", "is", "fun"].joined(separator: " ")
// "swift is fun"

Patrón común — dividir, transformar con map, volver a unir:

let result = "red,green,blue"
    .components(separatedBy: ",")
    .map { $0.uppercased() }
    .joined(separator: " > ")
// "RED > GREEN > BLUE"

Pruébalo tú mismo

let line = readLine()!
let words = line.components(separatedBy: ",")

// TODO: imprimir el conteo, unido en mayúsculas con " > ", la primera palabra más larga
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo