字符串比較的原理是什么?
原理:
從兩個字符串的第一個字符開始逐個進行比較(按字符的ASCII值進行大小比較),直到出現不同的字符或遇到‘\0’為止。
如果全部字符都相同,就認為兩字符串相等,返回0;
若出現了不相同的字符,則以第一個不相同的字符比較結果為准,若前者字符大於后者,則返回1,否則返回-1.
注意:
順序是第一個對象與第二個對象比較!
前>后 return 1;
前=后 return 0;
前<后 return -1
CompareTo方法與Compare方法實現的功能是一樣的,只是參數的位置放的不一樣而已
eg. s1.CompareTo(s2):
表示字符串s1與s2進行大小比較,
s1<s2 s1.CompareTo(s2)結果為:-1
s1=s2 s1.CompareTo(s2)結果為:0
s1>s2 s1.CompareTo(s2)結果為:1
eg.String.Compare(s1,s2)該方法所顯現的功能與上面一樣,連返回值結果也一樣。
表示字符串s1與s2進行大小比較,
s1<s2 String.Compare(s1,s2)結果為:-1
s1=s2 String.Compare(s1,s2)結果為:0
s1>s2 String.Compare(s1,s2)結果為:1
代碼比較如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { string s1 = "a"; string s2 = "b"; Console.WriteLine("s1.CompareTo(s2):" + s1.CompareTo(s2)); string s3 = "foobar"; string s4 = "foofoo";//后面大 Console.WriteLine("s3.CompareTo(s4):" + s3.CompareTo(s4)); string s5 = "foobar"; string s6 = "foofoo"; int Val = String.Compare(s5, s6); Console.WriteLine("String.Compare(s5,s6):" + Val); s6 = "fooaar"; Val = String.Compare(s5, s6); Console.WriteLine("String.Compare(s5,s6):" + Val); s6 = "foobar"; Val = String.Compare(s5, s6); Console.WriteLine("String.Compare(s5,s6):" + Val); Console.ReadKey(); } } }