Spec-Zone.ru › Dart 2

dart:convert

Метод split

Iterable<String> split(
  1. String lines,
  2. [int start = 0,
  3. int? end]
)

Разделяет lines на отдельные строки.

Если start и end указаны, то разделение выполняется только для содержимого lines.substring(start, end). Значения start и end должны указывать на допустимый поддиапазон lines (0 <= start <= end <= lines.length).

Реализация

static Iterable<String> split(String lines, [int start = 0, int? end]) sync* {
  end = RangeError.checkValidRange(start, end, lines.length);
  var sliceStart = start;
  var char = 0;
  for (var i = start; i < end; i++) {
    var previousChar = char;
    char = lines.codeUnitAt(i);
    if (char != _CR) {
      if (char != _LF) continue;
      if (previousChar == _CR) {
        sliceStart = i + 1;
        continue;
      }
    }
    yield lines.substring(sliceStart, i);
    sliceStart = i + 1;
  }
  if (sliceStart < end) {
    yield lines.substring(sliceStart, end);
  }
}

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

Spec-Zone.ru

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