Класс Runes
Класс Runes представляет собой итерируемую коллекцию
Unicode-кодовых точек строки. В Dart строки хранятся
как последовательности UTF-16 кодовых единиц, поэтому
символы, находящиеся за пределами базовой многоязычной
плоскости (например, эмодзи), занимают две кодовые
единицы. Класс Runes позволяет корректно
обрабатывать такие символы как единое целое. Получить
объект Runes можно через свойство runes
строки.
Синтаксис
str.runes
Пример
Давайте получим коллекцию кодовых точек строки и выведем её на экран:
void main()
{
String str = 'abcde';
Runes runes = str.runes;
print(runes);
}
Результат выполнения кода:
(97, 98, 99, 100, 101)
Пример
Давайте переберём все кодовые точки строки и выведем каждую из них:
void main()
{
String str = 'abcde';
for (int rune in str.runes) {
print(rune);
}
}
Результат выполнения кода:
97
98
99
100
101
Пример
Давайте преобразуем кодовые точки обратно
в строку с помощью метода String.fromCharCodes:
void main()
{
String str = 'abcde';
Runes runes = str.runes;
String res = String.fromCharCodes(runes);
print(res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте посчитаем количество кодовых точек
в строке с помощью свойства length:
void main()
{
String str = 'abcde';
Runes runes = str.runes;
print(runes.length);
}
Результат выполнения кода:
5
Смотрите также
-
класс
String,
который представляет строки в Dart -
метод
fromCharCodes,
который создаёт строку из кодовых точек -
свойство
runes,
которое возвращает объект Runes -
класс
RuneIterator,
который перебирает кодовые точки