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();
        }
    }
} 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM