Итерирование по строкам, ч. 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 к нему, используя оператор +=.
Задание
ЛегкоНапишите функцию 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 {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод