如何在 Dart 和 Flutter 中用单个空格替换多个空格

Mit*_*son 0 dart

我正在接受来自文本字段的值,并希望从这些值中删除多个空格并将它们替换为单个空格,到目前为止我已经尝试过,如何在 dart 中实现这一目标,

' '.join(mystring.split())
Run Code Online (Sandbox Code Playgroud)

但这似乎不像在 python 中那样工作,它会抛出 join无法在 dart 中的字符串上执行那么我该如何在 dart 中做到这一点...

lrn*_*lrn 9

最小和最简单的解决方案是:

final _whitespaceRE = RegExp(r"\s+");
String cleanupWhitespace(String input) =>
    input.replaceAll(_whitespaceRE, " ");
Run Code Online (Sandbox Code Playgroud)

您还可以使用split/ join

String cleanupWhitespace(String input) =>
    input.split(_whitespaceRE).join(" ");
Run Code Online (Sandbox Code Playgroud)

它的性能可能会稍差一些,但除非您一直这样做,否则这并不重要。

如果性能确实很重要,并且您不想用另一个空格替换单个空格,那么您可以将 RegExp 更改为:

final whitespaceRE = RegExp(r"(?! )\s+| \s+");
Run Code Online (Sandbox Code Playgroud)

仅仅对于处理用户输入来说不太可能重要。