Dart| Flutter :检查字符串是否相等的例子

2,709 阅读2分钟

本教程展示了如何比较两个字符串是否等于Dart或Flutter。

How to Check strings are equal or not in Dart and 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
}

总结

总结一下,我们可以很容易地使用双倍相等、比较到和相同的方法来比较字符串。