Menu
Coddy logo textTech

Suddivisione e unione

Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 4 di 56.

Due strumenti di uso quotidiano per lavorare con il testo delimitato. Entrambi provengono da Foundation, che è già importato.

components(separatedBy:) suddivide una stringa in un array di elementi String usando il delimitatore che passi:

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

L'inverso è joined(separator:) su qualsiasi [String]:

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

Spesso li combinerai: suddividi, trasforma con map, unisci di nuovo. Il risultato di map su un [String] è ancora un [String], quindi joined funziona direttamente.

challenge icon

Sfida

Facile

Leggi una singola riga di input: un elenco di parole separate da virgole.

Stampa tre righe:

  1. Il numero di parole dopo averle suddivise usando ,
  2. Le parole ricongiunte con > (spazio, maggiore di, spazio), in maiuscolo
  3. La parola più lunga dell’elenco (dopo la suddivisione). Se due parole sono a pari merito, usa quella che appare per prima.

Per l’input red,green,blue, l’output è:

3
RED > GREEN > BLUE
green

Provalo tu

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

// TODO: print count, joined-uppercased with " > ", first longest word
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Swift