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 String usando el delimitador que le pases:

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

Lo contrario 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: divide, transforma con map y vuelve a unirlos. El result de map sobre 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. La cantidad de palabras después de dividir por ,
  2. Las palabras unidas de nuevo con > (espacio, mayor que, espacio), en mayúsculas
  3. La palabra más larga de la lista (después de dividirla). Si dos palabras empatan, usa la que aparece primero.

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

3
RED > GREEN > BLUE
green

Pruébalo tú mismo

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

// TODO: imprime el conteo, unidos 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

Practica por tu cuenta: Playground de Swift