首页 > 代码库 > C# CompareTo 和 String.Compare

C# CompareTo 和 String.Compare

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;

namespace Test1
{
    class Program
    {
        static void Main(string[] args)
        {

            string s1 = "abc";
            string s2 = "abc";
            string s3 = "abcdfg";
            string s4 = "1bcdfg";
            string s5 = "cdfg";
            Console.WriteLine(s1.CompareTo(s2));
            Console.WriteLine(s1.CompareTo(s3));
            Console.WriteLine(s1.CompareTo(s4));
            Console.WriteLine(s1.CompareTo(s5));


            //String.Compare同上,F12可以看到它们继承与String。

            //string s1 = "abc";
            //string s2 = "abc";
            //string s3 = "abcdfg";
            //string s4 = "1bcdfg";
            //string s5 = "cdfg";
            //Console.WriteLine(String.Compare(s1, s2));
            //Console.WriteLine(String.Compare(s1, s3));
            //Console.WriteLine(String.Compare(s1, s4));
            //Console.WriteLine(String.Compare(s1, s5));

            Console.ReadKey();

            /*
            C#中compareTo()的返回值是-1、0、1,
            先比较两者首字符的大小(按ASCII码顺序)。
            一、s1首字符和参数s2的首字符不等:
            1、如果s1首字符的ASCII码大于s2首字符的ASCII码,则输出1;
            2、如果s1首字符的ASCII码小于s2首字符的ASCII码,则输出-1;
            结束。
            二、如果s1首字符和参数s2的首字符相等,则以s1第二个字符和参数s2的第二个字符做比较,以此类推。
            直到比较的字符或被比较的字符中有一方比较完了。
            1、字符串位数多的,输出1;
            2、字符串位数少的,输出-1.
            3、两者所有字符串完全相同,输出0.

            */
        }
    }
}

 

C# CompareTo 和 String.Compare