首页 > 编程笔记 > C#笔记 阅读:116

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

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

例如,使用关系运算符比较两个字符串的值是否相等,代码如下。
  1. string str1 = "mingrikeji";
  2. string str2 = "mingrikeji";
  3. 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 方法比较两个字符串是否相等,代码如下。
  1. string Str1 = "华为P30"; //声明字符串Str1
  2. string Str2 = "华为P30 Pro"; //声明字符串Str2
  3. //输出字符串Str1与Str2比较后的返回值
  4. Console.WriteLine(String.Compare(Str1, Str2));
  5. //输出字符串Str1与Str1比较后的返回值
  6. Console.WriteLine(String.Compare(Str1, Str1));
  7. //输出字符串Str2与Str1比较后的返回值
  8. 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,编程验证用户输入的用户名和密码是否正确,代码如下。
  1. using System;
  2.  
  3. class Program
  4. {
  5. static void Main()
  6. {
  7. // 假设的正确的用户名和密码
  8. string correctUsername = "mr";
  9. string correctPassword = "mrsoft";
  10.  
  11. // 提示用户输入用户名
  12. Console.Write("请输入用户名: ");
  13. string inputUsername = Console.ReadLine();
  14.  
  15. // 提示用户输入密码
  16. Console.Write("请输入密码: ");
  17. string inputPassword = Console.ReadLine();
  18.  
  19. // 验证用户名和密码是否正确
  20. bool isUsernameCorrect = inputUsername.Equals(correctUsername, StringComparison.OrdinalIgnoreCase);
  21. bool isPasswordCorrect = inputPassword.Equals(correctPassword, StringComparison.Ordinal);
  22.  
  23. // 输出验证结果
  24. if (isUsernameCorrect && isPasswordCorrect)
  25. {
  26. Console.WriteLine("用户名和密码正确,登录成功!");
  27. }
  28. else
  29. {
  30. Console.WriteLine("用户名或密码错误,登录失败!");
  31. }
  32. }
  33. }
运行程序,输入的用户名和密码正确,结果为:

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


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

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

相关文章