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.
Défi
FacileLisez une seule ligne d’entrée : une liste de mots séparés par des virgules.
Affichez trois lignes :
- Le nombre de mots après la séparation sur
, - Les mots réunis avec
>(espace, supérieur, espace), en majuscules - 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
greenEssayez 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
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
1Les chaînes de caractères en profondeur
Comptage et indicesCasse et nettoyageRecherche dans les chaînesDécoupage et jointureRemplacement de sous-chaînesRécapitulatif - Vérification du nom d'utilisateur4Ensembles
Création d'ensemblesUnion et intersectionSoustraction et différence symétriqueSous-ensemble et sur-ensembleRécapitulatif - Filtre de tags7Projet - Suivi d'habitudes
Aperçu du projetMarquer comme terminé10Projet - Moteur de quiz
Présentation du projetPoser des questions2Intervalles et Pas
Fermé vs Semi-ouvertLe PasMéthodes d'intervalleIntervalles dans un SwitchRécapitulatif - Grille de calendrier5Fonctions d'ordre supérieur, Partie 1
MapFilterReduceChaînage de map, filter, reduceRécapitulatif - Statistiques de motsEntraînez-vous par vous-même : Playground Swift