Spec-Zone.ru › Dart 2

dart:core

Класс String

Последовательность 16-битных кодовых единиц 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 используется название «руна» для целого числа, представляющего кодовую точку Unicode. Чтобы получить руны строки, используйте свойство runes:

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

Для символа за пределами базовой многоязычной плоскости (плоскость 0), представленного суррогатной парой, свойство runes объединяет пару и возвращает одно целое число. Например, кодовая точка Unicode музыкального символа «скрипичный ключ» ('𝄞') со значением руны 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
только для чтения
Итерируемая коллекция кодовых точек Unicode этой строки.
runtimeType → Type
только для чтенияунаследовано
Представление типа объекта во время выполнения.

Методы

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

Операторы

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

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

Spec-Zone.ru

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