Строки и Unicode — графемы, индексы, подстроки, API
Разберитесь со строками, учитывающими Unicode: расширенными кластерами графем, String.Index, подстроками, распространёнными API (prefix/suffix/contains, split/join) и производительностью копирования при записи.
«Строки и Unicode — графемы, индексы, подстроки, API» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 3 уроков всего.
Юникод и графемы
Тип строка в Swift корректно работает с Unicode. Один видимый пользователю символ может состоять из нескольких скаляров — это расширенный кластер графем.
- Примеры: эмодзи с оттенками кожи, буквы с диакритическими знаками
- Подсчёт выполняется по символам, а не по байтам
Подсчёт символов
Подсчёт измеряет количество символов (кластеров графем), а не байтов.
let wave = "👋🏽" // hand + skin tone modifier
let text = "Hi " + wave
print(text, "count =", text.count) // counts visible charactersИндексы и навигация
Используйте индекс строки со вспомогательными средствами, такими как startIndex, index(after:), index(_:offsetBy:).
let s = "Swift"
let firstIndex = s.startIndex
let secondIndex = s.index(after: firstIndex)
print(s[firstIndex], s[secondIndex]) // S wПодстроки
Подстроки используют общее хранилище с исходной строкой. Преобразуйте их в String(left) для длительного хранения.
let phrase = "hello.world"
let dot = phrase.firstIndex(of: ".")!
let left = phrase[..<dot] // Substring (shares storage)
let right = phrase[phrase.index(after: dot)...] // Substring
print(left, right)Распространённые интерфейсы
Полезные интерфейсы: hasPrefix, hasSuffix, contains, а также split/joined.
let path = "/usr/local/bin"
print(path.hasPrefix("/usr")) // true
print(path.hasSuffix("bin")) // true
print(path.contains("local")) // true
let parts = path.split(separator: "/") // [ "", "usr", "local", "bin" ] without first slash
let joined = parts.joined(separator: "-")
print(joined)Производительность (COW)
Производительность: строки и подстроки используют копирование при записи. Копирование выполняется быстро, пока данные не изменены. Преобразуйте подстроку в строку для длительного хранения.
Правила индексации строк
Быстрая проверка: как правильно обращаться по индексу к строке Swift?
Итоги
Итоги: строки с поддержкой Unicode используют кластеры графем. Перемещайтесь по ним с помощью индекса строки, выделяйте фрагменты как подстроки, используйте распространённые интерфейсы и помните о производительности COW.
Часто задаваемые вопросы
Урок «Строки и Unicode — графемы, индексы, подстроки, API» бесплатный?
Да — полный текст урока «Строки и Unicode — графемы, индексы, подстроки, API» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.
Чему я научусь в уроке «Строки и Unicode — графемы, индексы, подстроки, API»?
Разберитесь со строками, учитывающими Unicode: расширенными кластерами графем, String.Index, подстроками, распространёнными API (prefix/suffix/contains, split/join) и производительностью копирования… Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «Строки и Unicode — графемы, индексы, подстроки, API»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Строки и Unicode — графемы, индексы, подстроки, API
- Распространённые API — prefix/suffix/contains, split/join
- Производительность — копирование при записи