则以第一个不相同的字符比较结果为准

时间:2021-10-04 05:23:19

字符串对照的道理是什么?

道理:

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