Menu
Coddy logo textTech

Découpage et jointure

Fait partie de la section Logique et Flux du Journey Swift de Coddy. Leçon 4 sur 56.

Deux outils courants pour travailler avec du texte délimité. Tous deux proviennent de Foundation, qui est déjà importé.

components(separatedBy:) divise une chaîne en un tableau de String selon le délimiteur que vous lui transmettez :

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

L’opération inverse est joined(separator:) sur tout [String] :

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

Vous les combinerez souvent : diviser, transformer avec map, puis réunir. Le résultat de map appliqué à un [String] reste un [String], donc joined fonctionne directement.

challenge icon

Défi

Facile

Lisez une seule ligne d’entrée : une liste de mots séparés par des virgules.

Affichez trois lignes :

  1. Le nombre de mots après la séparation sur ,
  2. Les mots réunis avec > (espace, supérieur, espace), en majuscules
  3. Le mot le plus long de la liste (après la séparation). Si deux mots sont à égalité, utilisez celui qui apparaît en premier.

Pour l’entrée red,green,blue, la sortie est :

3
RED > GREEN > BLUE
green

Essayez vous-même

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

// TODO: afficher le nombre, joint en majuscules avec " > ", le premier mot le plus long
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Playground Swift