Casse et nettoyage
Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 2 sur 56.
Les méthodes de casse retournent de nouvelles chaînes, elles ne modifient pas l'originale. Utilisez-les sur du texte provenant de l'utilisateur avant de le comparer.
let raw = " Hello World "
print(raw.uppercased()) // " HELLO WORLD "
print(raw.lowercased()) // " hello world "Pour supprimer les espaces de début et de fin, utilisez trimmingCharacters(in:) de Foundation (déjà importé sur cette plateforme) :
let cleaned = raw.trimmingCharacters(in: .whitespaces)
print(cleaned) // "Hello World"
print(cleaned.count) // 11.whitespaces couvre les espaces et les tabulations. Utilisez .whitespacesAndNewlines lorsque l'entrée peut contenir un \n final.
Défi
DébutantLisez deux lignes d'entrée. Traitez-les toutes les deux comme des chaînes de caractères à comparer en ignorant la casse et les espaces environnants. Affichez :
matchlorsque les versions nettoyées et mises en minuscules sont égales, sinondiffer- La version nettoyée (sans espaces) de la première ligne en majuscules
Pour l'entrée Hello World sur la première ligne et HELLO world sur la deuxième, la sortie est :
match
HELLO WORLDAide-mémoire
Les méthodes de casse de chaînes renvoient de nouvelles chaînes (l'originale reste inchangée) :
str.uppercased() // "hello" → "HELLO"
str.lowercased() // "HELLO" → "hello"Supprimez les espaces blancs au début et à la fin avec trimmingCharacters(in:) :
let cleaned = raw.trimmingCharacters(in: .whitespaces) // espaces et tabulations
let cleaned = raw.trimmingCharacters(in: .whitespacesAndNewlines) // inclut \nEssayez vous-même
let a = readLine()!
let b = readLine()!
// TODO: supprimer les espaces + mettre en minuscules pour comparer ; afficher match/differ puis a en majuscules sans espaces
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 mots