C#的字符串比較
一、函數(shù)方法
函數(shù)方法 | 返回值 |
---|---|
string.Compare(字符串1,字符串2) | 相等時(shí)返回0,前者較大時(shí)返回1,后者較大時(shí)返回-1 |
string.CompareOrdinal(字符串1, 字符串2) | 相等時(shí)返回0,否則返回前者減去后者的ASCII碼值 |
字符串1.CompareTo(字符串2) | 相等時(shí)返回0,前者較大時(shí)返回1,后者較大時(shí)返回-1 |
字符串1.Equals(字符串2) | 相等時(shí)返回True,否則返回False |
二、Compare方法
string.Compare(
str1, str2
)
參數(shù):
str1
和str2
為兩個(gè)要比較的字符串
返回值:如果兩者相等返回
0
,如果str1
>str2
返回1
,如果str1
<str2
返回-1
注意:比較字符串并不是比較字符串的長(zhǎng)度,而是從首字符開始逐個(gè)比較字符的大小,如果已經(jīng)分出大小則結(jié)束比較,如果相等則繼續(xù)比較下一個(gè)字符,直到分出大小或到達(dá)字符串尾。
using System; namespace Test { class Program { static void Main(string[] args) { string str1, str2; /* 樣例1(str1 < str2):因?yàn)閟tr1的第一個(gè)字符為A比B小,所以結(jié)果會(huì)直接返回-1,不對(duì)之后的值進(jìn)行比較 */ str1 = "ABC"; str2 = "B"; Console.WriteLine("樣例1:{0}",string.Compare(str1,str2)); /* 樣例2(str1 > str2):因?yàn)閟tr2僅有一個(gè)字符A,在比較完第一個(gè)字符后str1還有多余的字符,結(jié)果會(huì)返回1 */ str1 = "ABC"; str2 = "A"; Console.WriteLine("樣例2:{0}", string.Compare(str1, str2)); /* 樣例3(str1 < str2):在比較時(shí)不是比較ASCII碼,比較時(shí)默認(rèn)小寫字母小于大寫字母 */ str1 = "a"; str2 = "A"; Console.WriteLine("樣例3:{0}", string.Compare(str1, str2)); } } }
三、CompareTo方法
str1
.CompareTo(str2
)
參數(shù):
str1
和str2
為兩個(gè)要比較的字符串
返回值:如果兩者相等返回
0
,如果str1
>str2
返回1
,如果str1
<str2
返回-1
注意:
CompareTo
方法和Compare
方法類似,CompareTo()
方法以實(shí)例對(duì)象本身和目標(biāo)字符串進(jìn)行比較。比較字符串并不是比較字符串的長(zhǎng)度,而是從首字符開始逐個(gè)比較字符的大小,如果已經(jīng)分出大小則結(jié)束比較,如果相等則繼續(xù)比較下一個(gè)字符,直到分出大小或到達(dá)字符串尾。
using System; namespace Test { class Program { static void Main(string[] args) { string str1, str2; /* 樣例1(str1 < str2):因?yàn)閟tr1的第一個(gè)字符為A比B小,所以結(jié)果會(huì)直接返回-1,不對(duì)之后的值進(jìn)行比較 */ str1 = "ABC"; str2 = "B"; Console.WriteLine("樣例1:{0}",str1.CompareTo(str2)); /* 樣例2(str1 > str2):因?yàn)閟tr2僅有一個(gè)字符A,在比較完第一個(gè)字符后str1還有多余的字符,結(jié)果會(huì)返回1 */ str1 = "ABC"; str2 = "A"; Console.WriteLine("樣例2:{0}", str1.CompareTo(str2)); /* 樣例3(str1 < str2):在比較時(shí)不是比較ASCII碼,比較時(shí)默認(rèn)小寫字母小于大寫字母 */ str1 = "a"; str2 = "A"; Console.WriteLine("樣例3:{0}", str1.CompareTo(str2)); } } }
四、Equals方法
str1.
Equals(str2)
參數(shù):
str1
和str2
為兩個(gè)要比較的字符串
返回值:如果兩者相等返回
True
,否則返回False
using System; namespace Test { class Program { static void Main(string[] args) { string str1, str2; /* 樣例1(str1 == str2):相等時(shí)直接返回True */ str1 = "ABC"; str2 = "ABC"; Console.WriteLine("樣例1:{0}",str1.Equals(str2)); /* 樣例2(str1 != str2):不相等時(shí)返回False */ str1 = "ABC"; str2 = "ACB"; Console.WriteLine("樣例2:{0}", str1.Equals(str2)); } } }
五、CompareOrdinal方法
string.CompareOrdinal(
str1
,str2
)
參數(shù):
str1
和str2
為兩個(gè)要比較的字符串
返回值:如果兩者相等返回
0
,否則返回str1
減去str2
兩者ASCII
碼的差值
using System; namespace Test { class Program { static void Main(string[] args) { string str1, str2; /* 樣例1(str1 == str2):相等時(shí)直接返回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):如果含有多個(gè)字符且兩者不相等時(shí),返回的是兩個(gè)字符串的首字符ASCII碼的差值,即32 */ str1 = "abcd"; str2 = "ABCD"; Console.WriteLine("樣例4:{0}", string.CompareOrdinal(str1, str2)); } } }
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
深入理解C# abstract和virtual關(guān)鍵字
深入理解C# abstract和virtual關(guān)鍵字,學(xué)習(xí)c#的朋友可以參考下。2011-06-06詳解C#對(duì)Dictionary內(nèi)容的通用操作
這篇文章主要為大家詳細(xì)介紹了C#對(duì)Dictionary內(nèi)容的一些通用操作,例如:根據(jù)鍵移除信息、根據(jù)值移除信息、根據(jù)鍵獲取值等,需要的可以參考一下2022-06-06c#高效率導(dǎo)出多維表頭excel的實(shí)例代碼
這篇文章介紹了c#高效率導(dǎo)出多維表頭excel的實(shí)例代碼,有需要的朋友可以參考一下2013-11-11Unity3D使用GL實(shí)現(xiàn)圖案解鎖功能
這篇文章主要為大家詳細(xì)介紹了Unity3D使用GL實(shí)現(xiàn)圖案解鎖功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03解析C#彩色圖像灰度化算法的實(shí)現(xiàn)代碼詳解
本篇文章是對(duì)C#中彩色圖像灰度化算法的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05WPF實(shí)現(xiàn)在控件上顯示Loading等待動(dòng)畫的方法詳解
這篇文章主要介紹了WPF 如何在控件上顯示 Loading 等待動(dòng)畫,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2023-03-03C#讀取XML中元素和屬性值的實(shí)現(xiàn)代碼
用C#讀取xml有很多方式,這里我就先使用XmlDocument讀取Xml,用一段代碼遍歷所有元素,并打印student的所有屬性和子節(jié)點(diǎn)的值2013-04-04