C#中字符串大小比较函数--CompareTo与Compare方法(需要完善补充)

字符串比较的原理是什么?

原理:

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

相关推荐