Menu
Coddy logo textTech

Iterieren über Strings Teil 2

Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 72 von 86.

Genauso wie wir enumerated() bei Arrays verwendet haben, um sowohl den Index als auch das Element zu erhalten, können wir dasselbe mit Strings tun. Dies ist nützlich, wenn Sie die Position jedes Zeichens während der Iteration kennen müssen.

let word = "Swift"

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

Diese Technik ist hilfreich, wenn neue Strings basierend auf Zeichenpositionen erstellt werden. Zum Beispiel möchten Sie vielleicht nur Zeichen an geraden Indizes behalten:

let text = "abcdef"
var result = ""

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

print(result)  // ace

Beachten Sie, dass wir char mit String(char) in einen String umwandeln, bevor wir ihn anhängen. Dies ist notwendig, da result ein String ist und Sie einen Character nicht direkt mit dem +=-Operator daran anhängen können.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion extractOddIndexChars, die text entgegennimmt und einen neuen String zurückgibt, der nur die Zeichen an ungeraden Indizes enthält.

Verwenden Sie enumerated(), um durch den String zu iterieren und ein Ergebnis zu erstellen, das Zeichen enthält, deren Index ungerade ist (1, 3, 5, etc.).

Parameter:

  • text (String): Der zu verarbeitende Eingabestring

Rückgabewert: Ein String, der nur die Zeichen an ungeraden Indizes enthält (String)

Beispiel: Wenn text gleich "abcdefg" ist, sollte die Funktion "bdf" zurückgeben (Zeichen an den Indizes 1, 3 und 5).

Spickzettel

Verwenden Sie enumerated() bei Strings, um beim Iterieren sowohl den Index als auch das Zeichen zu erhalten:

let word = "Swift"

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

Wenn Sie Strings basierend auf Zeichenpositionen erstellen, konvertieren Sie Character in String, bevor Sie sie anhängen:

let text = "abcdef"
var result = ""

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

print(result)  // ace

Verwenden Sie String(char), um einen Character in einen String zu konvertieren, wenn Sie ihn mit += anhängen.

Probier es selbst

func extractOddIndexChars(text: String) -> String {
    // Code hier schreiben
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen