本教程展示了如何比较两个字符串是否等于Dart或Flutter。
Dart没有提供isEquals (java)方法来比较方法是否相等。
`String equals比较两个字符串中相同字符的顺序是否相等。
因为,String
是不可改变的对象,一旦你创建了一个string
对象,就不允许你修改字符串,然而,如果你追加到一个现有的string
,它会创建一个新的字符串,其结果,原始字符串也存在于内存。
相同价值的字符串值为同一个字符串对象创建两个引用。
例如,给定两个字符串
String str1 = 'one';
String str2 = 'two';
String str3 = 'one';
上面的程序,在内存中创建了两个对象(一,二),str1和str3是指同一个对象(一),str2的引用是指另一个对象(二)。
字符串相等检查两个字符串值是否相等(str1,str2),返回true。
它提供了两种方法来检查字符串的值是否相等:
- double equal operator(
==
)。如果两个字符串是相同的字符集,返回真,否则返回假。 compareTo
方法:- 如果两个字符串相等,返回
0
,否则返回非零数。 - 如果第一个字符串在第二个字符串之前排序,则返回
negative number
(-1)。 - 如果第一个字符串排序在第二个字符串之后,则返回
positive number
(1)。
- 如果两个字符串相等,返回
同样,两个字符串的引用也是使用identical
,该方法检查内存中指向同一对象的两个引用。
如何在dart/flutter中比较字符串是否相等?
==
检查两个字符串对象持有相同的字符集,因为它返回布尔值,在条件表达式中很有用,如if。
compareTo() function
总是返回数字值,同样需要多一个步骤(结果==0)来检查字符串是否相等。
两种方法都是如此 它不检查字符串的空安全。
identical()
在字符串中检查两个变量在内存中是否持有相同的对象。
void main() {
print("one" == "one"); // true
print("one" == "ONE"); // false
print("one".compareTo("one")); // 0
print("one".compareTo("two")); // -1
String str1 = 'one';
String str2 = 'two';
String str3 = 'one';
print(identical(str1, str2)); // false
print(identical(str1, str3)); // true
}
总结
总结一下,我们可以很容易地使用双倍相等、比较到和相同的方法来比较字符串。