String.trimLeft и trimRight в вытачке

Как определить функции trimLeft и trimRight для String? Я не могу найти простое решение для их реализации.

Мое сложное решение:

String _trimLeft(String str) {
  var s = (str + '.').trim();
  return s.substring(0, s.length-1);
}

String _trimRight(String str) {
  return ('.' + str).trim().substring(1);
}

Существуют ли какие-либо сторонние библиотеки для Dart, такие как commons-lang для java, предоставляющие такие базовые функции?


person Freewind    schedule 09.03.2014    source источник
comment
Пожалуйста, отметьте dartbug.com/5589 — это должно быть просто там.   -  person lrn    schedule 10.03.2014


Ответы (2)


См. этот ответ, в котором используются String.replace и RegExp:

Обрезка пробелов в строках Dart с начала или с конца

Я помогаю поддерживать общий служебный пакет под названием Quiver, но в нем нет функций обрезки. Они будут отличным дополнением.

https://github.com/google/quiver-dart

person Justin Fagnani    schedule 09.03.2014

Другой подход заключается в сопоставлении с RegExp, но ваше решение выглядит проще.

String _trimLeft(String str) {
  RegExp re = new RegExp(r"^\s*(.+)");
  return re.firstMatch(str).group(1);
}

(Этот код не проверен.)

Изменить: этот вопрос уже задавался и на него уже был дан ответ. см. Обрезка пробелов в строках Dart с начала или конца

Библиотеки Dart управляются pub и доступны на http://pub.dartlang.org/packages

person Jerry101    schedule 09.03.2014