Я хочу выполнить эту операцию просто, правильно и эффективно. Также я не хочу вручную разделять строку на строки.Как работать в веб-приложении с многострочными строками более эффективно с помощью Dart SDK?
Вот что я хочу (something like this but it is not particularly critical
).
var string = someMultilneString;
var reader = new StringReader(string);
while(true) {
var line = reader.readLine();
if(line == null) {
break;
}
// work with line
}
Если это (or similar to this
) не представляется возможным, то почему?
P.S. Также, пожалуйста, не предлагайте ответы хуже этого примера. Поскольку этот способ хорошо известен, но это плохой дизайн, всегда нужно написать собственную реализацию для поддержки общих операций ввода и вывода.
List<String> StringToLines(String text) {
var source = text.replaceAll('\r\n', '\n');
source = source.replaceAll('\r', '\n');
var lines = source.split('\n');
var lenght = lines.length;
if(lenght > 0 && lines[lenght - 1].isEmpty) {
lines.length--;
}
return lines;
}
Почему вы не хотите разделить строку на строки? Это намного проще, если вы это сделаете. – tjameson
Что может быть быстрее, чем проходить через байты и проверять, когда вы нажмете LF? Возможно, если вы знаете контент, вы можете оценить позицию и, возможно, пропустить некоторые проверки. Если вы хотите, чтобы это было просто, оберните его в полезную функцию, и это будет легко на сайте-вызове :) –
@KaiSellgren Я не хочу писать свой собственный новый класс, но я просто хочу использовать существующую реализацию и не могу найти ее в Dart SDK. Может быть, он отсутствует? – mezoni