Spec-Zone.ru › Dart 2

dart:core

Класс String

Последовательность кодовых единиц UTF-16.

Строки в основном используются для представления текста. Один символ может быть представлен несколькими кодовыми точками, каждая кодовая точка состоит из одной или двух кодовых единиц. Например, символ флага Папуа-Новой Гвинеи требует четырех кодовых единиц для представления двух кодовых точек, но должен обрабатываться как один символ: «🇵🇬». Платформы, которые не поддерживают символ флага, могут отображать вместо него буквы «PG». Если кодовые точки поменяны местами, вместо этого отображается флаг Гваделупы «🇬🇵» («GP»).

Строка может быть одиночной или многострочной. Строки с одной строкой записываются с использованием соответствующих одинарных или двойных кавычек, а многострочные строки записываются с использованием тройных кавычек. Ниже приведены все допустимые строки Dart:

'Single quotes';
"Double quotes";
'Double quotes in "single" quotes';
"Single quotes in 'double' quotes";

'''A
multiline
string''';

"""
Another
multiline
string""";

Строки являются неизменяемыми. Хотя вы не можете изменить строку, вы можете выполнить операцию над строкой, которая создает новую строку:

const string = 'Dart is fun';
print(string.substring(0, 4)); // 'Dart'

Вы можете использовать оператор плюс (+) для конкатенации строк:

const string = 'Dart ' + 'is ' + 'fun!';
print(string); // 'Dart is fun!'

Смежные строковые литералы конкатенируются автоматически:

const string = 'Dart ' 'is ' 'fun!';
print(string); // 'Dart is fun!'

Вы можете использовать ${} для интерполяции значения выражений Dart в строках. Фигурные скобки можно опустить при оценке идентификаторов:

const string = 'dartlang';
print('$string has ${string.length} letters'); // dartlang has 8 letters

Строка представлена последовательностью кодовых единиц Unicode UTF-16, доступных через члены codeUnitAt или codeUnits:

const string = 'Dart';
final firstCodeUnit = string.codeUnitAt(0);
print(firstCodeUnit); // 68, aka U+0044, the code point for 'D'.
final allCodeUnits = string.codeUnits;
print(allCodeUnits); // [68, 97, 114, 116]

Представление отдельных кодовых единиц строки доступно через оператор индексации:

const string = 'Dart';
final charAtIndex = string[0];
print(charAtIndex); // 'D'

Символы строки закодированы в UTF-16. Декодирование UTF-16, которое объединяет пары суррогатов, даёт кодовые точки Unicode. Следуя аналогичной терминологии Go, Dart использует имя «rune» для целого числа, представляющего кодовую точку Unicode. Используйте свойство runes для получения рун строки:

const string = 'Dart';
final runes = string.runes.toList();
print(runes); // [68, 97, 114, 116]

Для символа вне базовой многоязычной плоскости (плоскость 0), состоящего из пары суррогатов, runes объединяет пару и возвращает единственное целое число. Например, символ Unicode для музыкальной G-лигатуры ('𝄞') со значением rune 0x1D11E состоит из пары суррогатов UTF-16: 0xD834 и 0xDD1E. С помощью codeUnits возвращается пара суррогатов, а с помощью runes возвращается их объединённое значение:

const clef = '\u{1D11E}';
for (final item in clef.codeUnits) {
  print(item.toRadixString(16));
  // d834
  // dd1e
}
for (final item in clef.runes) {
  print(item.toRadixString(16)); // 1d11e
}

Класс String не может быть расширен или реализован. Попытка сделать это приводит к ошибке компиляции.

Другие ресурсы

  • StringBuffer для эффективного пошагового построения строки.
  • RegExp для работы с регулярными выражениями.
  • Строки и регулярные выражения
Реализованные типы
  • Comparable<String>
  • Pattern

Конструкторы

String.fromCharCode(int charCode)
factory
Выделяет новую строку, содержащую указанный charCode.
String.fromCharCodes(Iterable<int> charCodes, [int start = 0, int? end])
factory
Выделяет новую строку, содержащую указанные charCodes.
String.fromEnvironment(String name, {String defaultValue = ""})
const
factory
Строковое значение объявления среды name.

Свойства

codeUnits → List<int>
только для чтения
Неизменяемый список кодовых единиц UTF-16 этой строки.
hashCode → int
только для чтения, переопределённый
Хэш-код, полученный из кодовых единиц строки.
isEmpty → bool
только для чтения
Является ли эта строка пустой.
isNotEmpty → bool
только для чтения
Не является ли эта строка пустой.
length → int
только для чтения
Длина строки.
runes → Runes
только для чтения
Iterable кодовых точек Unicode этой строки.
runtimeType → Type
только для чтения, унаследованно
Представление типа объекта во время выполнения.

Методы

allMatches(Строка string, [int start = 0]) → Iterable<Совпадение>
inherited
Сопоставляет этот шаблон с строкой многократно.
codeUnitAt(int index) → int
Возвращает 16-битный код символа UTF-16 в заданной index.
compareTo(Строка other) → int
override
Сравнивает эту строку с other.
contains(Шаблон other, [int startIndex = 0]) → bool
Содержит ли эта строка совпадение с other.
endsWith(Строка other) → bool
Заканчивается ли эта строка на other.
indexOf(Шаблон pattern, [int start = 0]) → int
Возвращает позицию первого совпадения pattern в этой строке, начиная с start, включительно:
lastIndexOf(Шаблон pattern, [int? start]) → int
Начальная позиция последнего совпадения pattern в этой строке.
matchAsPrefix(Строка string, [int start = 0]) → Совпадение?
inherited
Сопоставляет этот шаблон с началом string.
noSuchMethod(Вызов invocation) → dynamic
inherited
Вызывается при обращении к несуществующему методу или свойству.
padLeft(int width, [Строка padding = ' ']) → Строка
Дополняет эту строку слева, если она короче width.
padRight(int width, [Строка padding = ' ']) → Строка
Дополняет эту строку справа, если она короче width.
replaceAll(Шаблон from, Строка replace) → Строка
Заменяет все подстроки, соответствующие from на replace.
replaceAllMapped(Шаблон from, Строка replace(Совпадение match)) → Строка
Заменить все подстроки, соответствующие from на вычисленную строку.
replaceFirst(Шаблон from, Строка to, [int startIndex = 0]) → Строка
Создает новую строку с первым вхождением from заменённым на to.
replaceFirstMapped(Шаблон from, Строка replace(Совпадение match), [int startIndex = 0]) → Строка
Заменить первое вхождение from в этой строке.
replaceRange(int start, int? end, Строка replacement) → Строка
Заменяет подстроку от start до end на replacement.
split(Шаблон pattern) → Список<Строка>
Разбивает строку по совпадениям с pattern и возвращает список подстрок.
splitMapJoin(Шаблон pattern, {Строка onMatch(Совпадение)?, Строка onNonMatch(Строка)?}) → Строка
Разделяет строку, преобразует её части и объединяет их в новую строку.
startsWith(Шаблон pattern, [int index = 0]) → bool
Начинается ли эта строка с совпадения с pattern.
substring(int start, [int? end]) → Строка
Подстрока этой строки от start, включительно, до end, исключая.
toLowerCase() → Строка
Преобразует все символы в этой строке в нижний регистр.
toString() → Строка
inherited
Строковое представление этого объекта.
toUpperCase() → Строка
Преобразует все символы в этой строке в верхний регистр.
trim() → Строка
Строка без начальных и конечных пробелов.
trimLeft() → Строка
Строка без начальных пробелов.
trimRight() → Строка
Строка без конечных пробелов.

Операторы

operator *(int times) → Строка
Создает новую строку, конкатенируя эту строку с собой заданное число раз.
operator +(Строка other) → Строка
Создает новую строку, конкатенируя эту строку с other.
operator ==(Объект other) → bool
override
Является ли other String с той же последовательностью кодовых единиц.
operator [](int index) → Строка
Символ (как одиночная кодовая единица Строка) в заданной index.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/String-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API