首页 > 编程笔记

C#比较字符串(4种方法)

在 C# 中,对字符串值进行比较时,可以使用关系运算符“==”实现。

例如,使用关系运算符比较两个字符串的值是否相等,代码如下。
string str1 = "mingrikeji";
string str2 = "mingrikeji";
Console.WriteLine((str1 == str2));
上面代码的输出结果为 True。

除了关系运算符“==”,在 C# 中常见的比较字符串的方法还有 Compare、CompareTo 和 Equals 等方法,这些方法都归属于 String 类。

C# Compare方法

Compare 方法用来比较两个字符串是否相等,它有多个重载方法,其中最常用的两个方法如下。
int compare(string strA,string strB)
int Compare(string strA,string strB,bool ignoreCase)

Compare 方法是一个静态方法,所以在使用时可以直接引用。


例如,声明两个字符串,然后使用 Compare 方法比较两个字符串是否相等,代码如下。
string Str1 = "华为P30";                       //声明字符串Str1
string Str2 = "华为P30 Pro";                   //声明字符串Str2
//输出字符串Str1与Str2比较后的返回值
Console.WriteLine(String.Compare(Str1, Str2));
//输出字符串Str1与Str1比较后的返回值
Console.WriteLine(String.Compare(Str1, Str1));
//输出字符串Str2与Str1比较后的返回值
Console.WriteLine(String.Compare(Str2, Str1));
程序运行结果如下:

-1
0
1

注意,比较字符串并非比较字符串长度的大小,而是比较字符串在英文字典中的位置,即按照字典排序的规则,判断两个字符串的大小。在英文字典中,在前面的单词小于在后面的单词。

C# CompareTo方法

CompareTo 方法与 Compare 方法相似,都可以比较两个字符串是否相等,不同的是 CompareTo 方法将实例对象本身与指定的字符串做比较,其语法格式如下。
public int CompareTo (string strB)
例如,对字符串stra和字符串strb进行比较,代码如下。
stra.CompareTo(strb)
如果 stra 与 strb 相等,则返回 0;如果 stra 大于 strb,则返回 1;否则返回 -1。

C# Equals方法

Equals方法主要用于比较两个字符串是否相同,如果相同则返回值是 True,否则为 False,其常用的两种方式的语法格式如下。
public bool Equals (string value)
public static bool Equals (string a,string b)

例如,网站的登录用户名和密码分别是 mr 和 mrsoft,编程验证用户输入的用户名和密码是否正确,代码如下。
using System; 
 
class Program 
{ 
    static void Main() 
    { 
        // 假设的正确的用户名和密码 
        string correctUsername = "mr"; 
        string correctPassword = "mrsoft"; 
 
        // 提示用户输入用户名 
        Console.Write("请输入用户名: "); 
        string inputUsername = Console.ReadLine(); 
 
        // 提示用户输入密码 
        Console.Write("请输入密码: "); 
        string inputPassword = Console.ReadLine(); 
 
        // 验证用户名和密码是否正确 
        bool isUsernameCorrect = inputUsername.Equals(correctUsername, StringComparison.OrdinalIgnoreCase); 
        bool isPasswordCorrect = inputPassword.Equals(correctPassword, StringComparison.Ordinal); 
 
        // 输出验证结果 
        if (isUsernameCorrect && isPasswordCorrect) 
        { 
            Console.WriteLine("用户名和密码正确,登录成功!"); 
        } 
        else 
        { 
            Console.WriteLine("用户名或密码错误,登录失败!"); 
        } 
    } 
}
运行程序,输入的用户名和密码正确,结果为:

请输入用户名: mr
请输入密码: mrsoft
用户名和密码正确,登录成功!


输入的用户名和密码正确,结果为:

请输入用户名: mr
请输入密码: mr
用户名或密码错误,登录失败!

推荐阅读