Абстрактный класс String
Последовательность символов.
Строка может быть однострочной или многострочной. Однострочные строки записываются с использованием одинарных или двойных кавычек, а многострочные — с использованием тройных кавычек. Ниже приведены допустимые примеры Dart-строк:
'Single quotes'; "Double quotes"; 'Double quotes in "single" quotes'; "Single quotes in 'double' quotes"; '''A multiline string'''; """ Another multiline string""";
Строки неизменяемы. Хотя вы не можете изменить строку, вы можете выполнить операцию над строкой и присвоить результат новой строке:
var string = 'Dart is fun'; var newString = string.substring(0, 5);
Вы можете использовать оператор плюс (+) для конкатенации строк:
'Dart ' + 'is ' + 'fun!'; // 'Dart is fun!'
Вы также можете использовать смежные строковые литералы для конкатенации:
'Dart ' 'is ' 'fun!'; // 'Dart is fun!'
Вы можете использовать ${} для интерполяции значения выражений Dart в строках. Фигурные скобки можно опустить при вычислении идентификаторов:
string = 'dartlang';
'$string has ${string.length} letters'; // 'dartlang has 8 letters'
Строка представлена последовательностью единиц кода Unicode UTF-16, доступных через члены codeUnitAt или codeUnits:
string = 'Dart'; string.codeUnitAt(0); // 68 string.codeUnits; // [68, 97, 114, 116]
Представление строки в виде кодовых единиц доступно через оператор индексации:
string[0]; // 'D'
Символы строки закодированы в UTF-16. Декодирование UTF-16, которое объединяет парные суррогаты, дает символы Unicode. Следуя терминологии Go, мы используем название «rune» для целого числа, представляющего символ Unicode. Используйте свойство runes, чтобы получить руны строки:
string.runes.toList(); // [68, 97, 114, 116]
Для символа вне Основной многоязычной плоскости (плоскость 0), который состоит из пары суррогатов, runes объединяет пару и возвращает единственное целое число. Например, символ Unicode для музыкальной ключа G ('𝄞') со значением руны 0x1D11E состоит из пары UTF-16 суррогатов: 0xD834 и 0xDD1E. Используя codeUnits, возвращается пара суррогатов, а используя runes возвращается их объединённое значение:
var clef = '\u{1D11E}';
clef.codeUnits; // [0xD834, 0xDD1E]
clef.runes.toList(); // [0x1D11E]
Класс String не может быть расширен или реализован. Попытка сделать это приведёт к ошибке компиляции.
Другие ресурсы
См. StringBuffer для эффективного пошагового построения строк. См. RegExp для работы с регулярными выражениями.
См. также:
- Dart Cookbook для примеров и рецептов работы со строками.
- Dart Up and Running
- Реализует
Конструкторы
- String.fromCharCode(int charCode) factory
-
Выделяет новую строку для указанного
charCode. - String.fromCharCodes(Iterable<int> charCodes, [ int start = 0, int end ]) factory
-
Выделяет новую строку для указанного
charCodes. - String.fromEnvironment(String name, { String defaultValue }) constfactory
-
Возвращает строковое значение объявления среды
name.
Свойства
- codeUnits → List<int> только для чтения
-
Возвращает неизменяемый список единиц кода UTF-16 этой строки.
- hashCode → int только для чтения
-
Возвращает хеш-код, вычисленный из единиц кода строки.
- isEmpty → bool только для чтения
-
Возвращает true, если эта строка пуста.
- isNotEmpty → bool только для чтения
-
Возвращает true, если эта строка не пуста.
- length → int только для чтения
-
Длина строки.
- runes → Runes только для чтения
-
Возвращает
Iterableпоследовательности символов Unicode этой строки. - runtimeType → Type только для чтения, унаследованное
-
Представление типа объекта во время выполнения.
Операторы
- operator *(
int times) → String -
Создаёт новую строку путём конкатенации этой строки с собой заданное число раз.
- operator +(
String other) → String -
Создаёт новую строку путём конкатенации этой строки с
other. - operator ==(
Object other) → bool -
Возвращает true, если other является
Stringс той же последовательностью единиц кода. - operator [](
int index) → String -
Возвращает символ (как строка с одной единицей кода String) по указанному
index.
Методы
- codeUnitAt(
int index) → int -
Возвращает 16-битный код символа UTF-16 в указанной
index. - contains(
Pattern other, [ int startIndex = 0 ]) → bool -
Возвращает true, если эта строка содержит соответствие
other: - endsWith(
String other) → bool -
Возвращает true, если эта строка заканчивается
other. Например: - indexOf(
Pattern pattern, [ int start ]) → int -
Возвращает позицию первого соответствия
patternв этой строке, начиная сstart, включительно: - lastIndexOf(
Pattern pattern, [ int start ]) → int -
Возвращает позицию последнего соответствия
patternв этой строке, выполняя поиск в обратном порядке, начиная сstart, включительно: - 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, начиная сstartIndex: - 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 match), String onNonMatch(String nonMatch) }) → String -
Разделяет строку, преобразует ее части и объединяет их в новую строку.
- startsWith(
Pattern pattern, [ int index = 0 ]) → bool -
Возвращает true, если эта строка начинается с соответствия
pattern. - substring(
int startIndex, [ int endIndex ]) → String -
Возвращает подстроку этой строки, которая простирается от
startIndex, включительно, доendIndex, не включая. - toLowerCase(
) → String -
Преобразует все символы в этой строке в нижний регистр. Если строка уже в нижнем регистре, этот метод возвращает
this. - toUpperCase(
) → String -
Преобразует все символы в этой строке в верхний регистр. Если строка уже в верхнем регистре, этот метод возвращает
this. - trim(
) → String -
Возвращает строку без начальных и конечных пробелов.
- trimLeft(
) → String -
Возвращает строку без начальных пробелов.
- trimRight(
) → String -
Возвращает строку без конечных пробелов.
- allMatches(
String string, [ int start = 0 ]) → Iterable<Match> inherited -
Подбирает этот шаблон к строке многократно.
- compareTo(
String other) → int inherited -
Сравнивает этот объект с другим объектом Comparable
- matchAsPrefix(
String string, [ int start = 0 ]) → Match inherited -
Подбирает этот шаблон к началу
string. - noSuchMethod(
Invocation invocation) → dynamic inherited -
Вызывается, когда обращаются к несуществующему методу или свойству.
- toString(
) → String inherited -
Возвращает строковое представление этого объекта.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/String-class.html