Подсчет и индексы
Часть раздела Логика и управление потоком путешествия по Swift на Coddy — урок 1 из 56.
Вы использовали str.count в основах, чтобы получить количество символов. Дальнейшее изучение предполагает понимание того, что Swift String — это последовательность символов, а не просто массив байтов.
let greeting = "Hello"
print(greeting.count) // 5
print(greeting.first!) // "H"
print(greeting.last!) // "o"
print(greeting.isEmpty) // falseВы не можете индексировать строку с помощью целого числа. Чтобы получить символ в определенной позиции, запросите у строки index со смещением от ее начала:
let i = greeting.index(greeting.startIndex, offsetBy: 1)
print(greeting[i]) // "e"Свойства first, last и isEmpty — это повседневные инструменты. Используйте индексы только тогда, когда вам действительно нужна конкретная позиция.
Задание
НовичокПрочитайте одну строку входных данных. Выведите три строки:
- Количество символов во входных данных
- Первый и последний символы, разделенные пробелом, например
H oдляHello true, если первый и последний символы являются одной и той же буквой без учета регистра, в противном случае —false(например,Anna,RadaR)
Предполагается, что входные данные содержат как минимум один символ.
Для входных данных RadaR вывод будет следующим:
5
R R
trueШпаргалка
Swift-строка String — это последовательность символов. Основные свойства:
let s = "Hello"
s.count // 5
s.first! // "H"
s.last! // "o"
s.isEmpty // falseДля доступа к символу в определенной позиции используйте смещение индекса:
let i = s.index(s.startIndex, offsetBy: 1)
print(s[i]) // "e"Сравнение символов без учета регистра:
s.first!.lowercased() == s.last!.lowercased()Попробуйте сами
let line = readLine()!
// TODO: вывести количество, первый/последний и проверку на совпадение букв без учета регистра
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаря