C# String.Equals()方法: 比较两个字符串是否相等

  • Post category:C#

使用C#的String.Equals()方法对字符串进行比较

String.Equals()方法的介绍

String.Equals()方法是C#中用于比较两个字符串是否相等的方法。该方法可以比较字符串的值和对象的引用,它返回一个布尔值,表示比较的结果。

String.Equals()方法的语法

String.Equals(object obj):用于比较字符串对象和指定的对象是否相等,如果相等则返回true,否则返回false。

String.Equals(string str):用于比较当前字符串和指定的字符串是否相等,如果相等则返回true,否则返回false。

String.Equals()方法的用法

比较字符串的值

使用String.Equals()方法比较字符串的值非常简单,只需要传入要比较的字符串即可。请看下面的代码示例:

string str1 = "hello";
string str2 = "hello";
bool result = str1.Equals(str2); // true

在上述代码中,我们将两个字符串”hello”赋值给str1和str2变量,然后使用String.Equals()方法比较这两个字符串是否相等,结果为true,因为这两个字符串的值是相等的。

比较对象的引用

使用String.Equals()方法比较对象的引用同样非常简单,只需要传入要比较的对象即可。请看下面的代码示例:

string str1 = "hello";
string str2 = "hello";
string str3 = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
bool result1 = str1.Equals(str2); // true
bool result2 = str1.Equals(str3); // true

在上述代码中,我们将两个字符串”hello”赋值给str1和str2变量,然后使用String.Equals()方法比较这两个字符串和str3变量所表示的字符串是否相等,结果均为true,因为在C#中字符串都是引用类型,它们的引用指向的是对字符串所表示的字符数组的内存地址,在这里str1、str2和str3都指向同一个字符数组,所以这样的比较会返回true。

指定比较器进行比较

String.Equals()方法还有一个重载方法可以通过指定比较器(comparer)来替换比较用的默认比较器。比如,可以自定义一个不区分大小写(Case-Insensitive)的比较器,将该比较器传入String.Equals()方法,从而实现大小写不同但值相同的字符串比较。请看下面的代码示例:

string str1 = "hello";
string str2 = "HELLO";
bool result = str1.Equals(str2, StringComparison.OrdinalIgnoreCase); // true

在上述代码中,我们将两个字符串”hello”和”HELLO”赋值给str1和str2变量,然后使用String.Equals()方法比较这两个字符串的值是否相等,并且忽略字母大小写,结果为true。

总结

通过上述代码示例,我们可以发现String.Equals()方法可以用于比较字符串的值和对象的引用。在比较字符串时,可以采用默认的比较器,也可以自定义比较器进行比较。