РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
202 of 723 menu

Свойство runes

Свойство runes возвращает объект типа Runes, который представляет собой итерируемую коллекцию кодовых точек Unicode (рун) данной строки. В отличие от свойства codeUnits, которое возвращает 16-битные кодовые единицы, свойство runes корректно обрабатывает символы, выходящие за пределы BMP (Basic Multilingual Plane), например, эмодзи или редкие иероглифы. Сама строка при этом не изменяется.

Синтаксис

str.runes

Пример

Давайте получим руны строки из латинских букв и выведем их в виде списка:

void main() { String str = 'abcde'; Iterable<int> res = str.runes; print(res.toList()); }

Результат выполнения кода:

[97, 98, 99, 100, 101]

Пример

Давайте получим руны строки из цифр:

void main() { String str = '12345'; Iterable<int> res = str.runes; print(res.toList()); }

Результат выполнения кода:

[49, 50, 51, 52, 53]

Пример

Давайте убедимся, что свойство runes корректно обрабатывает символы за пределами BMP. Символ эмодзи "😀" имеет кодовую точку 128512, которая не помещается в одну 16-битную единицу:

void main() { String str = '😀'; print(str.runes.toList()); print(str.codeUnits); }

Результат выполнения кода:

[128512] [55357, 56832]

Пример

Давайте переберём руны строки в цикле и выведем каждую из них:

void main() { String str = 'abcde'; for (int rune in str.runes) { print(rune); } }

Результат выполнения кода:

97 98 99 100 101

Смотрите также

  • свойство codeUnits,
    которое возвращает кодовые единицы строки
  • класс Runes,
    который представляет коллекцию рун
  • класс RuneIterator,
    который перебирает руны строки
  • метод fromCharCodes,
    который создаёт строку из кодовых точек
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить