字符串对照的道理是什么?
道理:
从两个字符串的第一个字符开始逐个进行对照(按字符的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(); } } }