概要:本文所指字符串比较并非长度比较。1.c#字符串比较法则。2.部分c#字符串的比较方法
c#字符串比较法则
- c#语言中使用一些方法对俩个字符串进行比较时,不是比较字符串的长度,判断两字符串的大小,主要遵循的法则是按照字典排序先后而进行比较。
- 比较两个字符串时,会将其每个字符进行逐个比较,如若相同则比较下一个,直到出现不同的字符或遇到\0为止。
- 比较英文字符串时所遵循,在字典中排序在后的单词大于在前的单词。
- 同样比较中文字符串时,在字典中排序靠后的单个汉字要大于靠前的汉字。
c#字符串的比较方法
- 使用比较运算符‘==’来比较两个字符串是否相等,若相等则返回True,否则返回False
- 使用方法compare,该方法是string类所提供的,因为其是一个静态方法,所以使用时可以直接引用。它有很多种重载方法,其中最常见的两种如下
Int compare(string str1,string str2);
Int Compare(string str1,string str2,bool Capitalization);
str1,str2代表比较的两个字符串,Capitalization代表一个布尔类型参数,若其的值为true,则比较时忽略大小写差别。
若str1大于str2则返回1,相等返回0,小于返回-1。
- 使用方法CompareTo方法,该方法与compare很相似,不同的是CompareTo是以实例对象本身与指定的字符串作比较。具体使用方法如下
str1.CompareTo(str2)
其中str1代表实例对象,str2代表指定字符串
若str1大于str2则返回1,相等返回0,小于返回-1。
- 使用方法Equals,该方法不同于上面的方法,它与‘==’比较相似,仅可比较两个字符串是否相等,若相等返回True,否则返回False。具体语法方式如下
public bool Equals(string str1);
str1代表与实例相比的字符串。
public static bool Equals(string str1,string str2);
str1和str2代表两个相比的字符串。
下面举例子来具体化以上内容
using System;
namespace 练习
{
class Program
{
static void Main(string[] args)
{
string str1 = "代码"; //实例化一个字符串赋值为 代码
string str2 = "代码"; //实例化一个字符串赋值为 代嘛
string str3 = "code"; //实例化一个字符串赋值为 code
string str4 = "coce"; //实例化一个字符串赋值为 coce
Console.WriteLine(str1 == str2); //比较str1与str2是否相等
Console.WriteLine(str3 == str2); //比较str3与str4是否相等
Console.WriteLine(string.Compare(str3, str4)); //比较str3与str4大小
Console.WriteLine(string.Compare(str4, str3)); //比较str4与str3大小
Console.WriteLine(string.Compare(str3, str3)); //比较str3与str3大小
Console.WriteLine(str3.CompareTo(str4)); //比较str3与str4大小
Console.WriteLine(str4.CompareTo(str3)); //比较str4与str3大小
Console.WriteLine(str4.Equals(str3)); //比较str4与str3是否相等
Console.WriteLine(string.Equals(str1, str2)); //比较str1与str2是否相等
}
}
}
程序运行结果如下