Menu
Coddy logo textTech

Итерирование по строкам, ч. 2

Часть раздела Основы путешествия по Swift на Coddy — урок 72 из 86.

Точно так же, как мы использовали enumerated() с массивами, чтобы получить и индекс, и элемент, мы можем сделать то же самое со строками. Это полезно, когда вам нужно знать позицию каждого символа во время итерации.

let word = "Swift"

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

Этот метод полезен при создании новых строк на основе позиций символов. Например, вы можете захотеть оставить только символы на четных индексах:

let text = "abcdef"
var result = ""

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

print(result)  // ace

Обратите внимание, что мы преобразуем char в String с помощью String(char) перед его добавлением. Это необходимо, потому что result является String, и вы не можете напрямую добавить Character к нему, используя оператор +=.

challenge icon

Задание

Легко

Напишите функцию extractOddIndexChars, которая принимает text и возвращает новую строку, содержащую только символы на нечетных индексах.

Используйте enumerated() для итерации по строке и создания результата, содержащего символы, индекс которых является нечетным (1, 3, 5 и т. д.).

Параметры:

  • text (String): Входная строка для обработки

Возвращает: Строку, содержащую только символы на нечетных индексах (String)

Пример: Если text равен "abcdefg", функция должна вернуть "bdf" (символы на индексах 1, 3 и 5).

Шпаргалка

Используйте enumerated() со строками, чтобы получить индекс и символ во время итерации:

let word = "Swift"

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

При создании строк на основе позиций символов преобразуйте Character в String перед добавлением:

let text = "abcdef"
var result = ""

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

print(result)  // ace

Используйте String(char) для преобразования Character в String при добавлении с помощью +=.

Попробуйте сами

func extractOddIndexChars(text: String) -> String {
    // Напишите код здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы