Menu
Coddy logo textTech

Iterowanie po łańcuchach znaków, cz. 2

Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 72 z 86.

Tak jak użyliśmy enumerated() z tablicami, aby uzyskać zarówno indeks, jak i element, możemy zrobić to samo z ciągami znaków. Jest to przydatne, gdy podczas iterowania musisz znać pozycję każdego znaku.

let word = "Swift"

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

Ta technika jest przydatna przy tworzeniu nowych ciągów znaków na podstawie pozycji znaków. Możesz na przykład chcieć zachować tylko znaki na parzystych indeksach:

let text = "abcdef"
var result = ""

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

print(result)  // ace

Zauważ, że przed dodaniem konwertujemy char na String za pomocą String(char). Jest to konieczne, ponieważ result jest typu String i nie można bezpośrednio dodać do niego wartości typu Character za pomocą operatora +=.

challenge icon

Wyzwanie

Łatwy
Napisz funkcję extractOddIndexChars, która przyjmuje text i zwraca nowy ciąg zawierający tylko znaki o nieparzystych indeksach.

Użyj enumerated(), aby przejść przez ciąg i zbudować wynik zawierający znaki, których indeks jest nieparzysty (1, 3, 5 itd.).

Parametry:

  • text (String): Ciąg wejściowy do przetworzenia

Zwraca: Ciąg zawierający tylko znaki o nieparzystych indeksach (String)

Przykład: Jeśli text ma wartość "abcdefg", funkcja powinna zwrócić "bdf" (znaki o indeksach 1, 3 i 5).

Spróbuj swoich sił

func extractOddIndexChars(text: String) -> String {
    // Napisz kod tutaj
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Swift