Menu
Coddy logo textTech

Remplacement de sous-chaînes

Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 5 sur 56.

replacingOccurrences(of:with:) retourne une nouvelle chaîne de caractères où chaque occurrence d'une sous-chaîne est remplacée par une autre :

let phone = "555-123-4567"
let digits = phone.replacingOccurrences(of: "-", with: "")
print(digits)              // "5551234567"

Comme les méthodes de casse, elle renvoie une nouvelle String ; l'originale n'est pas modifiée. Enchaînez les appels lorsque vous devez supprimer plusieurs motifs :

let messy = "  555-123 4567  "
let clean = messy
    .replacingOccurrences(of: "-", with: "")
    .replacingOccurrences(of: " ", with: "")
print(clean)               // "5551234567"

Deux remplacements signifient deux passages sur la chaîne. Pour du code sensible aux performances sur de grandes chaînes, préférez un seul passage filter sur les caractères ; pour le travail quotidien, les remplacements en chaîne conviennent parfaitement et sont clairs à lire.

challenge icon

Défi

Débutant

Lisez une seule ligne d'entrée. Traitez-la comme une phrase et produisez un slug adapté à une URL en :

  1. Mettant l'entrée en minuscules
  2. Remplaçant chaque espace par un -
  3. Supprimant chaque caractère !, ?, et .

Affichez le slug résultant.

Pour l'entrée Hello World!, la sortie est hello-world. Pour Is Swift Fun?, la sortie est is-swift-fun.

Aide-mémoire

replacingOccurrences(of:with:) retourne une nouvelle chaîne de caractères avec chaque occurrence remplacée :

let digits = "555-123-4567".replacingOccurrences(of: "-", with: "")
// "5551234567"

Enchaînez les appels pour gérer plusieurs motifs :

let clean = "555-123 4567"
    .replacingOccurrences(of: "-", with: "")
    .replacingOccurrences(of: " ", with: "")

Essayez vous-même

let line = readLine()!

// TODO: mettre en minuscules, remplacer les espaces par des traits d'union, supprimer les caractères ! ? .
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