Menu
Coddy logo textTech

Itérer sur les chaînes P2

Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 72 sur 86.

Tout comme nous avons utilisé enumerated() avec des tableaux pour obtenir à la fois l'index et l'élément, nous pouvons faire de même avec les chaînes de caractères. C'est utile lorsque vous avez besoin de connaître la position de chaque caractère lors de l'itération.

let word = "Swift"

for (index, char) in word.enumerated() {
    print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: t

Cette technique est utile lors de la construction de nouvelles chaînes de caractères basées sur les positions des caractères. Par exemple, vous pourriez vouloir ne conserver que les caractères aux indices pairs :

let text = "abcdef"
var result = ""

for (index, char) in text.enumerated() {
    if index % 2 == 0 {
        result += String(char)
    }
}

print(result)  // ace

Notez que nous convertissons char en un String en utilisant String(char) avant de l'ajouter. Ceci est nécessaire car result est un String, et vous ne pouvez pas ajouter directement un Character à celui-ci en utilisant l'opérateur +=.

challenge icon

Défi

Facile

Écrivez une fonction extractOddIndexChars qui prend text et renvoie une nouvelle chaîne contenant uniquement les caractères aux indices impairs.

Utilisez enumerated() pour parcourir la chaîne et construire un résultat contenant les caractères dont l'indice est impair (1, 3, 5, etc.).

Paramètres :

  • text (String) : La chaîne d'entrée à traiter

Retourne : Une chaîne contenant uniquement les caractères aux indices impairs (String)

Exemple : Si text est "abcdefg", la fonction doit retourner "bdf" (caractères aux indices 1, 3 et 5).

Aide-mémoire

Utilisez enumerated() avec des chaînes de caractères pour obtenir à la fois l'index et le caractère lors de l'itération :

let word = "Swift"

for (index, char) in word.enumerated() {
    print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: t

Lors de la construction de chaînes basées sur les positions des caractères, convertissez Character en String avant l'ajout :

let text = "abcdef"
var result = ""

for (index, char) in text.enumerated() {
    if index % 2 == 0 {
        result += String(char)
    }
}

print(result)  // ace

Utilisez String(char) pour convertir un Character en String lors de l'ajout avec +=.

Essayez vous-même

func extractOddIndexChars(text: String) -> String {
    // Écrivez le code ici
}
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 Fondamentaux