Регистр и удаление пробелов
Часть раздела Логика и управление потоком путешествия по Swift на Coddy — урок 2 из 56.
Методы изменения регистра возвращают новые строки, они не изменяют оригинал. Используйте их для текста, полученного от пользователя, перед его сравнением.
let raw = " Hello World "
print(raw.uppercased()) // " HELLO WORLD "
print(raw.lowercased()) // " hello world "Чтобы удалить начальные и конечные пробелы, используйте trimmingCharacters(in:) из Foundation (уже импортировано на этой платформе):
let cleaned = raw.trimmingCharacters(in: .whitespaces)
print(cleaned) // "Hello World"
print(cleaned.count) // 11.whitespaces охватывает пробелы и знаки табуляции. Используйте .whitespacesAndNewlines, когда входные данные могут содержать завершающий \n.
Задание
НовичокПрочитайте две строки ввода. Рассматривайте их обе как строки для сравнения без учета регистра, игнорируя окружающие пробелы. Выведите:
match, если очищенные версии в нижнем регистре равны, в противном случае —differ- Очищенную (без пробелов по краям) версию первой строки в верхнем регистре
Для входных данных Hello World в первой строке и HELLO world во второй, вывод будет следующим:
match
HELLO WORLDШпаргалка
Методы изменения регистра строк возвращают новые строки (исходная строка не изменяется):
str.uppercased() // "hello" → "HELLO"
str.lowercased() // "HELLO" → "hello"Удалите начальные и конечные пробелы с помощью trimmingCharacters(in:):
let cleaned = raw.trimmingCharacters(in: .whitespaces) // пробелы и табуляция
let cleaned = raw.trimmingCharacters(in: .whitespacesAndNewlines) // включает \nПопробуйте сами
let a = readLine()!
let b = readLine()!
// TODO: обрезать пробелы + привести к нижнему регистру для сравнения; вывести match/differ, затем a в верхнем регистре с обрезанием пробелов
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаря