функция String::split

Разбивает исходную строку на подстроки, с учетом разделителя pattern.

Синтаксис

List<String>
String.split
(Pattern pattern)

Передаваемые параметры

Pattern pattern

Возвращаемое значение

List<String>

Описание

Метод split разбивает исходную строку на подстроки, в местах вхождения шаблона pattern, и возвращает результат в качестве массива строк. Причем, сам шаблон pattern не входит в подстроки результирующего массива.

Заметки

Метод split возвращает массив подстрок данной строки, разбивая ее по заданному символу, строке, или регулярному выражению. Если в качестве разделителя задана пустая строка, то исходная строка будет разбита на отдельные символы, что аналогично использованию метода splitChars, если разделитель в строке не найден, то будет возвращен массив, состоящий из одного элемента - данной подстроки.

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

Если вызывающая строка пуста, то split возвращает массив из одной пустой строки, а не пустой массив

Примеры

Разделение текста на предложения
#import('dart:core');

void main() {
  // исходная строка
  String text = "Предложение первое, совсем небольшое. Предложение второе - еще короче.";
  // разбиваем строку, используя регулярное выражение "\\.[ ]*"
  List<string> list = text.split(const RegExp("\\.[ ]*"));
  
  print(list.length); // 3, полученный массив содержит 3 элемента
  print(list[0]); // "Предложение первое, совсем небольшое"
  print(list[1]); // "Предложение второе - еще короче"
  print(list[2]); // ""
}
Получение списка слов из текста
  // исходная строка
  String text = "Из данного текста получим список слов";
  // разбиваем текст, используя пробел
  List<string> list = text.split(" ");

  print(list.length); // 6, полученный массив содержит 6 элементов
  print(list[0]); // "Из"
  print(list[1]); // "данного"
  print(list[2]); // "текста"
Разделяем строку, сохраняя разделители
void main() {
  // разбиваем текст, используя регулярное выражение с вложенными скобками "([а-яА-Я]+)"
  List list = "Из данного текста получим список слов".split(const RegExp(@"([а-яА-Я]+)"));

  print(list.length);
// 13, полученный массив содержит 13 элементов.
// Потому что включены как разделители (слова),
// так и то что между ними (в данном случае - пробелы)

  print(list[0]); // ""
  print(list[1]); // "Из"
  print(list[2]); // " "
  print(list[3]); // "данного"

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

String::splitChars - Возвращает все символы строки в виде массива.

Официальная документация (английский)