字符串是应用于变量的数据类型。而且,字符串变量存储了一组用双("")和单('')引号括起来的字符。
如果在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编程中检查一个给定的字符串是空的还是空的,或者是空白的空白字符,并附有例子