如何在Dart中删除字符串的所有空格?

时间:2018-07-24 22:19:28

标签: dart flutter

使用trim()消除Dart中的空白,它不起作用。 我在做什么错还是有其他选择?

       String product = "COCA COLA";

       print('Product id is: ${product.trim()}');

控制台打印:Product id is: COCA COLA

8 个答案:

答案 0 :(得分:4)

尝试一下

String product = "COCA COLA";
print('Product id is: ${product.replaceAll(new RegExp(r"\s+\b|\b\s"), "")}');

答案 1 :(得分:3)

Trim方法只删除开头和结尾。使用Regexp实例: 这是一个例子: Dart: Use regexp to remove whitespaces from string

答案 2 :(得分:1)

这可以解决您的问题

String name = "COCA COLA";
print(name.replaceAll(' ', '');

答案 3 :(得分:1)

如果将来对某人有帮助,为方便起见,您可以定义String类的扩展方法:

extension StringExtensions on String {
  String removeWhitespace() {
    return this.replaceAll(' ', '');
  }
}

这可以像product.removeWhiteSpace()那样使用,我过去曾用它在按字符串对列表进行排序而忽略大小写和空格时创建了一个辅助方法

extension StringExtensions on String {
  String toSortable() {
    return this.toLowerCase().replaceAll(' ', '');
  }
}

答案 4 :(得分:1)

您可以尝试以下方法:

String product = "COCA COLA";

print(product.split(" ").join(""));   // COCACOLA

答案 5 :(得分:0)

使用裁切功能

String name = "Stack Overflow";
print(name.trim());

答案 6 :(得分:0)

  1. 使用 trim()

    trim()方法用于删除前导和尾随空格。它不会改变原始字符串。如果String的开头或结尾没有空格,则会返回原始值。

    print('   COCA COLA'.trim()); // Output: 'COCA COLA'
    print('COCA COLA     '.trim()); // Output: 'COCA COLA'
    print('   COCA COLA     '.trim()); // Output: 'COCA COLA'
    
  2. 使用 trimLeft()trimRight()

    如果您只想在开始时修剪而不是在结尾处修剪,或者相反的话,该怎么办。您可以使用trimLeft仅删除前导空白,而使用trimRight仅删除尾随空白。

    print('   COCA COLA    '.trimLeft()); // Output: 'COCA COLA     '
    print('   COCA COLA    '.trimRight()); // Output:'   COCA COLA'
    

    如果字符串可以为null,则可以考虑使用可识别null的运算符。

    String s = null;
    print(s?.trim());
    

    上面的代码将返回null而不是抛出NoSuchMethodError

  3. 使用正则表达式(RegExp

    如果原始字符串包含多个空格,并且您要删除所有空格。应用以下解决方案

    String replaceWhitespacesUsingRegex(String s, String replace) {
     if (s == null) {
       return null;
     }
    
     // This pattern means "at least one space, or more"
     // \\s : space
     // +   : one or more
     final pattern = RegExp('\\s+');
     return s.replaceAll(pattern, replace);
    }
    

    像这样打电话

    print(replaceWhitespacesUsingRegex('One  Two   Three   Four', '')); // Output: 'OneTwoThreeFour'
    

查看更多:https://www.woolha.com/tutorials/dart-trim-whitespaces-of-a-string-examples

答案 7 :(得分:0)

我知道这个问题有很好的答案,但我想展示一种删除字符串中所有空格的奇特方法。我实际上认为 Dart 应该有一个内置方法来处理这个问题,所以我为 String 类创建了以下扩展:

extension ExtendedString on String {
  /// The string without any whitespace.
  String removeAllWhitespace() {
    // Remove all white space.
    return this.replaceAll(RegExp(r"\s+"), "");
  }
}

现在,您可以以一种非常简单和巧妙的方式使用它:

String product = "COCA COLA";
print('Product id is: ${product.removeAllWhitespace()}');