C#基础-053 两个字符串比较方法(3种)

来源:互联网 发布:2020年庚子大难知乎 编辑:程序博客网 时间:2024/06/05 00:46
  static void Main(string[] args)        {            Console.WriteLine( Mycompare_03("sasgb", "sdsdsdgg") );        }        static int Mycompare_01(string str1, string str2)//自己实现的3种方法MyCompare        {            if (str1.Length > str2.Length)            {                for (int i = 0; i < str1.Length - str2.Length + 1; i++)                {                    for (int j = 0; j < str2.Length - i; j++)                    {                        if (str1[j] > str2[i + j])                        {                            return 1;                        }                        if (str1[j] < str2[i + j])                        {                            return -1;                        }                    }                }                    }            else            {                for (int i = 0; i < str2.Length - str1.Length + 1; i++)                {                    for (int j = 0; j < str1.Length - i; j++)                    {                        if (str2[j] > str1[i + j])                        {                            return -1;                        }                        if (str2[j] < str1[i + j])                        {                            return 1;                        }                    }                }            }            return 0;        }        static int Mycompare_02(string str1, string str2)//最优        {            //    abc    abc            for (int i = 0; i < str1.Length; i++)            {                //如果str2比str1长的情况                if (i > str2.Length - 1)                {                    return 1;                }                if (str1[i] > str2[i])                {                    return 1;                }                else if (str1[i] < str2[i])                {                    return -1;                }            }            //str1的长度小于或等于str2的长度            return str1.Length == str2.Length ? 0 : -1;        }        static int Mycompare_03(string str1, string str2)        {            //abc abc            for (int i = 0; i < str1.Length; i++)            {                //如果str2比str1长的情况                if (i > str2.Length - 1)                {                    return 1;                }                if (str1[i] > str2[i])                {                    return 1;                }                else if (str1[i] < str2[i])                {                    return -1;                }            }            return Math.Abs(str1.Length - str2.Length)==0 ? 0 : (str1.Length - str2.Length) / Math.Abs(str1.Length - str2.Length);        }
原创粉丝点击