Dart/Flutter:检查字符串是否为空、无或空白的例子

3,534 阅读2分钟

字符串是应用于变量的数据类型。而且,字符串变量存储了一组用双("")和单('')引号括起来的字符。

如果在Dart和Flutter中没有指定字符串值,默认值是null

在Dart和Flutter中,空字符串、空字符串和空白字符串之间是有区别的。

  • 空字符串是变量被声明了,但是没有被分配一个值。一个例子是String value; ,其值是null
  • 空字符串是指分配了一个空字符串,字符串的长度为零。语法示例是String value=""
  • 空字符串是指一个至少有空白字符的字符串,并且字符串的长度大于零。语法示例为:String value=" "

本教程展示了在Dart和Flutter示例中检查字符串为空、空或空白的多种方法。

在Dart和Flutter中检查字符串是否为空、无效

在Dart中,有多种方法来检查一个给定的字符串是空的、空的或空白的。

使用isEmpty和isNotEmpty方法

字符串有内置的属性

  • isEmpty。如果字符串是空的或空的,返回真,如果是空白字符,返回假。
  • isNotEmpty:如果字符串不是空的或非空的,返回真,如果是空的和空的,返回假。

下面是一个示例程序

void main() async {
  String? str = "";

  print(str);
  print(str.isEmpty); //true
  print(str.isNotEmpty); //false

  String str1 = " ";
  print(str1.isEmpty); //false
  print(str1.isNotEmpty); //true

  String str2 = "string";
  print(str2.isEmpty); //false
  print(str2.isNotEmpty); //true
}

该方法的缺点

  • isEmpty对空白字符(如空格)返回假。
  • isNonEmpty对空白字符返回true,不能区分有效字符串和空白字符。
  • 另外,对于一个变量,在nullable类型的操作符(问号后)上调用这个方法,会产生以下错误
  String? str = null; // or just declared without assigning value

 // throws an error
  print(str.isEmpty); 
  print(str.isNotEmpty);

错误是Error: Property ‘isEmpty’ cannot be accessed on ‘String?’ because it is potentially null. print(str.isEmpty); //false ^^^^^^^ lib/main.dart:7:13: Error: Property ‘isNotEmpty’ cannot be accessed on ‘String?’ because it is potentially null. print(str.isNotEmpty); //true

所以,这些方法并不适用于nullable类型的操作者(?)。另一种方法是使用string.length来检查

使用字符串长度

dart string包有一个length,用于返回一个给定字符串的长度。 语法。

返回从零到任何数字的整数。

void main() async {
  String str = "";
  print(str.length); //0
  String str1 = " ";
  print(str1.length); //1
  String str2 = "string";
  print(str2.length); //6
}

如何在dart和flutter中检查字符串是否包含空白字符

isEmpty对于包含空白字符的字符串返回false。

使用字符串trim() 方法并调用isBlank ,如下所示。

void main() async {

  String str1 = " ";
  print(str1.trim().isEmpty); //true

}

总结

学习了如何在dart或flutter编程中检查一个给定的字符串是空的还是空的,或者是空白的空白字符,并附有例子