Перебор строк P2
Часть раздела Основы путешествия по 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 с помощью оператора +=.
Задание
ЛегкоНапиши функцию extractOddIndexChars, которая принимает text и возвращает новую строку, содержащую только символы с нечётными индексами.
Используй enumerated(), чтобы перебрать строку и создать результат, содержащий символы с нечётными индексами (1, 3, 5 и т. д.).
Параметры:
text(String): входная строка для обработки
Возвращает: строку, содержащую только символы с нечётными индексами (String)
Пример: если text — это "abcdefg", функция должна вернуть "bdf" (символы с индексами 1, 3 и 5).
Попробуйте сами
func extractOddIndexChars(text: String) -> String {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: простая математикаОператоры сравнения7Основы ввода-вывода
Функция printИнтерполяция строкВвод с ReadLineПреобразование типовПовторение: до 120Повторение: истина или ложь2Переменные
Let и VarАннотации типовЧислаСтрокаЛогический типСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор разделения счёта
Приветственное сообщениеВвод данных14Массивы: продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опциональные значения
Что такое опциональные значенияИзвлечение значения с помощью if letGuard letОператор объединения с nilПовторение — безопасное извлечение значения6Принятие решений
Условный оператор ifIf — ElseПовторение: простой калькуляторОператор switchSwitch с диапазонами9Циклы
Цикл for-inЦикл whileЦикл repeat-whileПрерывание циклаПереход к следующей итерацииПовторение — факториалДиапазоны в циклахВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Swift