Разделение и объединение
Часть раздела Логика и управление потоком путешествия по Swift на Coddy. Урок 4 из 56.
Два повседневных инструмента для работы с текстом, разделённым разделителями. Оба входят в Foundation, который уже импортирован.
components(separatedBy:) разбивает строку на массив значений типа String по разделителю, который вы передаёте:
let csv = "red,green,blue"
let parts = csv.components(separatedBy: ",")
print(parts) // ["red", "green", "blue"]Обратная операция — это joined(separator:) для любого [String]:
let words = ["swift", "is", "fun"]
let line = words.joined(separator: " ")
print(line) // "swift is fun"Часто ты будешь объединять их: разделять, преобразовывать с помощью map, а затем снова объединять. Результат применения map к [String] по-прежнему является [String], поэтому joined работает напрямую.
Задание
ЛегкоПрочитайте одну строку ввода: список слов, разделённых запятыми.
Выведите три строки:
- Количество words после разделения по
, - words, объединённые обратно с помощью
>(пробел, знак «больше», пробел), в верхнем регистре - Самое длинное word из списка (после разделения). Если два words имеют одинаковую длину, используйте то, которое встречается first.
Для ввода red,green,blue результатом будет:
3
RED > GREEN > BLUE
greenПопробуйте сами
let line = readLine()!
let words = line.components(separatedBy: ",")
// TODO: вывести количество, объединённые в верхнем регистре с " > ", первое самое длинное слово
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаряПотренируйтесь самостоятельно: Песочница Swift