8

我对 Dart 非常陌生,正在尝试了解基本库。对于字符串,提供了一个 trim() 函数。这很好,但是没有明显的方法可以只在字符串的开头或结尾修剪空格吗?我找不到他们。谢谢。

4

3 回答 3

10

没有用于仅修剪前导或尾随空格的特定方法。但是很容易实现它们:

/// trims leading whitespace
String ltrim(String str) {
  return str.replaceFirst(new RegExp(r"^\s+"), "");
}

/// trims trailing whitespace
String rtrim(String str) {
  return str.replaceFirst(new RegExp(r"\s+$"), "");
}
于 2013-01-01T04:57:11.900 回答
1

MoreDart有一些受 Guava 启发的助手,可让您从开头、结尾或两者有效地修剪字符串:

import 'package:more/char_matcher.dart';

...

var whitespace = new CharMatcher.whitespace();    // what to trim

whitespace.trimFrom(input);   // trim from beginning and end
whitespace.trimLeadingFrom(input);   // trim from beginning
whitespace.trimTrailingFrom(input);   // trim from end
于 2014-03-09T10:34:07.380 回答
1

我们今天刚刚将trimLeft和添加trimRight到 Quiver,但事实证明它们也将添加到String未来的 SDK 版本中。不过,您今天可以使用 Quiver。

这些实现与基于 Regex 的解决方案之间的区别在于空格的定义与String.trim. 正则表达式识别较少的空白字符。

http://pub.dartlang.org/packages/quiver

于 2014-03-11T04:51:40.070 回答