Итерирование по строкам, ч. 1
Часть раздела Основы путешествия по Swift на Coddy — урок 71 из 86.
Как и массивы, строки в Swift представляют собой последовательности символов, по которым можно выполнять итерацию. Это позволяет легко обрабатывать текст по одному символу за раз, используя знакомый цикл for-in.
Когда вы перебираете строку в цикле, Swift выдает вам каждый символ по порядку:
let word = "Hello"
for char in word {
print(char)
}
// H
// e
// l
// l
// oКаждый char в цикле имеет тип Character, а не String. Это различие важно, когда вам нужно сравнивать или манипулировать отдельными символами.
Вы можете использовать этот метод для анализа текста, например, для подсчета определенных символов:
let message = "banana"
var countA = 0
for char in message {
if char == "a" {
countA += 1
}
}
print(countA) // 3Обратите внимание, что при сравнении символа мы используем один символ в кавычках, например "a". Swift автоматически рассматривает это как Character при сравнении с другим символом.
Задание
ЛегкоНапишите функцию countVowels, которая принимает text и возвращает общее количество гласных в строке.
Переберите каждый символ в строке и посчитайте, сколько из них являются гласными (a, e, i, o, u). Учитывайте как строчные, так и заглавные гласные.
Параметры:
text(String): Строка для анализа
Возвращает: Общее количество гласных, найденных в строке (Int)
Пример: Если text имеет значение "Hello World", функция должна вернуть 3 (гласные: e, o, o).
Шпаргалка
Вы можете перебирать строку с помощью цикла for-in для обработки каждого символа:
let word = "Hello"
for char in word {
print(char)
}
// H
// e
// l
// l
// oКаждый char в цикле имеет тип Character, а не String.
Вы можете сравнивать символы напрямую в условиях:
let message = "banana"
var countA = 0
for char in message {
if char == "a" {
countA += 1
}
}
print(countA) // 3Попробуйте сами
func countVowels(text: String) -> Int {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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Повторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод