C#的字符串比較
一、函數(shù)方法
| 函數(shù)方法 | 返回值 |
|---|---|
| string.Compare(字符串1,字符串2) | 相等時返回0,前者較大時返回1,后者較大時返回-1 |
| string.CompareOrdinal(字符串1, 字符串2) | 相等時返回0,否則返回前者減去后者的ASCII碼值 |
| 字符串1.CompareTo(字符串2) | 相等時返回0,前者較大時返回1,后者較大時返回-1 |
| 字符串1.Equals(字符串2) | 相等時返回True,否則返回False |
二、Compare方法
string.Compare(
str1, str2)
參數(shù):
str1和str2為兩個要比較的字符串
返回值:如果兩者相等返回
0,如果str1>str2返回1,如果str1<str2返回-1
注意:比較字符串并不是比較字符串的長度,而是從首字符開始逐個比較字符的大小,如果已經分出大小則結束比較,如果相等則繼續(xù)比較下一個字符,直到分出大小或到達字符串尾。

using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
string str1, str2;
/*
樣例1(str1 < str2):因為str1的第一個字符為A比B小,所以結果會直接返回-1,不對之后的值進行比較
*/
str1 = "ABC";
str2 = "B";
Console.WriteLine("樣例1:{0}",string.Compare(str1,str2));
/*
樣例2(str1 > str2):因為str2僅有一個字符A,在比較完第一個字符后str1還有多余的字符,結果會返回1
*/
str1 = "ABC";
str2 = "A";
Console.WriteLine("樣例2:{0}", string.Compare(str1, str2));
/*
樣例3(str1 < str2):在比較時不是比較ASCII碼,比較時默認小寫字母小于大寫字母
*/
str1 = "a";
str2 = "A";
Console.WriteLine("樣例3:{0}", string.Compare(str1, str2));
}
}
}
三、CompareTo方法
str1.CompareTo(str2)
參數(shù):
str1和str2為兩個要比較的字符串
返回值:如果兩者相等返回
0,如果str1>str2返回1,如果str1<str2返回-1
注意:
CompareTo方法和Compare方法類似,CompareTo()方法以實例對象本身和目標字符串進行比較。比較字符串并不是比較字符串的長度,而是從首字符開始逐個比較字符的大小,如果已經分出大小則結束比較,如果相等則繼續(xù)比較下一個字符,直到分出大小或到達字符串尾。

using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
string str1, str2;
/*
樣例1(str1 < str2):因為str1的第一個字符為A比B小,所以結果會直接返回-1,不對之后的值進行比較
*/
str1 = "ABC";
str2 = "B";
Console.WriteLine("樣例1:{0}",str1.CompareTo(str2));
/*
樣例2(str1 > str2):因為str2僅有一個字符A,在比較完第一個字符后str1還有多余的字符,結果會返回1
*/
str1 = "ABC";
str2 = "A";
Console.WriteLine("樣例2:{0}", str1.CompareTo(str2));
/*
樣例3(str1 < str2):在比較時不是比較ASCII碼,比較時默認小寫字母小于大寫字母
*/
str1 = "a";
str2 = "A";
Console.WriteLine("樣例3:{0}", str1.CompareTo(str2));
}
}
}
四、Equals方法
str1.Equals(str2)
參數(shù):
str1和str2為兩個要比較的字符串
返回值:如果兩者相等返回
True,否則返回False

using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
string str1, str2;
/*
樣例1(str1 == str2):相等時直接返回True
*/
str1 = "ABC";
str2 = "ABC";
Console.WriteLine("樣例1:{0}",str1.Equals(str2));
/*
樣例2(str1 != str2):不相等時返回False
*/
str1 = "ABC";
str2 = "ACB";
Console.WriteLine("樣例2:{0}", str1.Equals(str2));
}
}
}
五、CompareOrdinal方法
string.CompareOrdinal(
str1,str2)
參數(shù):
str1和str2為兩個要比較的字符串
返回值:如果兩者相等返回
0,否則返回str1減去str2兩者ASCII碼的差值

using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
string str1, str2;
/*
樣例1(str1 == str2):相等時直接返回0
*/
str1 = "ABC";
str2 = "ABC";
Console.WriteLine("樣例1:{0}",string.CompareOrdinal(str1,str2));
/*
樣例2(str1 > str2):B的ASCII碼為66,A的ASCII碼為65, B減去A的ASCII碼值為1
*/
str1 = "B";
str2 = "A";
Console.WriteLine("樣例2:{0}", string.CompareOrdinal(str1,str2));
/*
樣例3(str1 > str2):a的ASCII碼為97,A的ASCII碼為65, a減去A的ASCII碼值為32
*/
str1 = "a";
str2 = "A";
Console.WriteLine("樣例3:{0}", string.CompareOrdinal(str1, str2));
/*
樣例4(str1 > str2):如果含有多個字符且兩者不相等時,返回的是兩個字符串的首字符ASCII碼的差值,即32
*/
str1 = "abcd";
str2 = "ABCD";
Console.WriteLine("樣例4:{0}", string.CompareOrdinal(str1, str2));
}
}
}
總結
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

