Menu
Coddy logo textTech

Разделение и объединение

Часть раздела Логика и управление потоком путешествия по 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 работает напрямую.

challenge icon

Задание

Легко

Прочитайте одну строку ввода: список слов, разделенных запятыми.

Выведите три строки:

  1. Количество слов после разделения по символу ,
  2. Слова, объединенные снова с помощью > (пробел, знак "больше", пробел), в верхнем регистре
  3. Самое длинное слово из списка (после разделения). Если два слова имеют одинаковую длину, используйте то, которое встречается первым.

Для входных данных red,green,blue выводом будет:

3
RED > GREEN > BLUE
green

Попробуйте сами

let line = readLine()!
let words = line.components(separatedBy: ",")

// TODO: вывести count, объединенные в верхнем регистре через " > ", первое самое длинное слово
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком