Menu
Coddy logo textTech

Подсчет и индексы

Часть раздела Логика и управление потоком путешествия по 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 — это повседневные инструменты. Используйте индексы только тогда, когда вам действительно нужна конкретная позиция.

challenge icon

Задание

Новичок

Прочитайте одну строку входных данных. Выведите три строки:

  1. Количество символов во входных данных
  2. Первый и последний символы, разделенные пробелом, например H o для Hello
  3. 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: вывести количество, первый/последний и проверку на совпадение букв без учета регистра
quiz iconПроверьте себя

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

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