C#的字符串比较

 更新时间:2021年07月08日 09:52:40   作者:小狐狸FM  
这篇文章主要介绍了c# 字符串操作的相关知识,文中讲解的非常详细,代码帮助大家更好的学习,感兴趣的朋友可以参考下,希望能给你带来帮助

ASCII码-百度百科

微软官方C#函数文档

一、函数方法

函数方法 返回值
string.Compare(字符串1,字符串2) 相等时返回0,前者较大时返回1,后者较大时返回-1
string.CompareOrdinal(字符串1, 字符串2) 相等时返回0,否则返回前者减去后者的ASCII码值
字符串1.CompareTo(字符串2) 相等时返回0,前者较大时返回1,后者较大时返回-1
字符串1.Equals(字符串2) 相等时返回True,否则返回False

二、Compare方法

string.Compare(str1, str2)

参数: str1str2为两个要比较的字符串

返回值:如果两者相等返回0,如果str1 > str2返回1,如果str1 < str2返回-1

注意:比较字符串并不是比较字符串的长度,而是从首字符开始逐个比较字符的大小,如果已经分出大小则结束比较,如果相等则继续比较下一个字符,直到分出大小或到达字符串尾。

在这里插入图片描述

using System;
namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1, str2;
            /*
            样例1(str1 < str2):因为str1的第一个字符为A比B小,所以结果会直接返回-1,不对之后的值进行比较
            */
            str1 = "ABC";
            str2 = "B";
            Console.WriteLine("样例1:{0}",string.Compare(str1,str2));
            /*
            样例2(str1 > str2):因为str2仅有一个字符A,在比较完第一个字符后str1还有多余的字符,结果会返回1
            */
            str1 = "ABC";
            str2 = "A";
            Console.WriteLine("样例2:{0}", string.Compare(str1, str2));
            /*
            样例3(str1 < str2):在比较时不是比较ASCII码,比较时默认小写字母小于大写字母
            */
            str1 = "a";
            str2 = "A";
            Console.WriteLine("样例3:{0}", string.Compare(str1, str2));
        }
    }
}

三、CompareTo方法

str1.CompareTo(str2)

参数: str1str2为两个要比较的字符串

返回值:如果两者相等返回0,如果str1 > str2返回1,如果str1 < str2返回-1

注意: CompareTo方法和Compare方法类似,CompareTo()方法以实例对象本身和目标字符串进行比较。比较字符串并不是比较字符串的长度,而是从首字符开始逐个比较字符的大小,如果已经分出大小则结束比较,如果相等则继续比较下一个字符,直到分出大小或到达字符串尾。

在这里插入图片描述

using System;
namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1, str2;
            /*
            样例1(str1 < str2):因为str1的第一个字符为A比B小,所以结果会直接返回-1,不对之后的值进行比较
            */
            str1 = "ABC";
            str2 = "B";
            Console.WriteLine("样例1:{0}",str1.CompareTo(str2));
            /*
            样例2(str1 > str2):因为str2仅有一个字符A,在比较完第一个字符后str1还有多余的字符,结果会返回1
            */
            str1 = "ABC";
            str2 = "A";
            Console.WriteLine("样例2:{0}", str1.CompareTo(str2));
            /*
            样例3(str1 < str2):在比较时不是比较ASCII码,比较时默认小写字母小于大写字母
            */
            str1 = "a";
            str2 = "A";
            Console.WriteLine("样例3:{0}", str1.CompareTo(str2));
        }
    }
}

四、Equals方法

str1.Equals(str2)

参数: str1str2为两个要比较的字符串

返回值:如果两者相等返回True,否则返回False

在这里插入图片描述

using System;
namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1, str2;
            /*
            样例1(str1 == str2):相等时直接返回True
            */
            str1 = "ABC";
            str2 = "ABC";
            Console.WriteLine("样例1:{0}",str1.Equals(str2));
            /*
            样例2(str1 != str2):不相等时返回False
            */
            str1 = "ABC";
            str2 = "ACB";
            Console.WriteLine("样例2:{0}", str1.Equals(str2));
        }
    }
}

五、CompareOrdinal方法

string.CompareOrdinal(str1, str2)

参数: str1str2为两个要比较的字符串

返回值:如果两者相等返回0,否则返回str1减去str2两者ASCII码的差值

在这里插入图片描述

using System;
namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1, str2;
            /*
            样例1(str1 == str2):相等时直接返回0
            */
            str1 = "ABC";
            str2 = "ABC";
            Console.WriteLine("样例1:{0}",string.CompareOrdinal(str1,str2));
            /*
            样例2(str1 > str2):B的ASCII码为66,A的ASCII码为65, B减去A的ASCII码值为1
            */
            str1 = "B";
            str2 = "A";
            Console.WriteLine("样例2:{0}", string.CompareOrdinal(str1,str2));
            /*
            样例3(str1 > str2):a的ASCII码为97,A的ASCII码为65, a减去A的ASCII码值为32
            */
            str1 = "a";
            str2 = "A";
            Console.WriteLine("样例3:{0}", string.CompareOrdinal(str1, str2));
            /*
            样例4(str1 > str2):如果含有多个字符且两者不相等时,返回的是两个字符串的首字符ASCII码的差值,即32
            */
            str1 = "abcd";
            str2 = "ABCD";
            Console.WriteLine("样例4:{0}", string.CompareOrdinal(str1, str2));
        }
    }
}

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • WPF实现2048小游戏

    WPF实现2048小游戏

    这篇文章主要为大家详细介绍了WPF实现2048小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • C#使用foreach遍历哈希表(hashtable)的方法

    C#使用foreach遍历哈希表(hashtable)的方法

    这篇文章主要介绍了C#使用foreach遍历哈希表(hashtable)的方法,是C#中foreach语句遍历散列表的典型应用,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#实现获取mp3 Tag信息的方法

    C#实现获取mp3 Tag信息的方法

    这篇文章主要介绍了C#实现获取mp3 Tag信息的方法,涉及C#针对MP3文件属性的相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • C#将Word或Excel文档转换为Html文件

    C#将Word或Excel文档转换为Html文件

    这篇文章介绍了C#将Word或Excel文档转换为Html文件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • c#中task与thread区别及其使用的方法示例

    c#中task与thread区别及其使用的方法示例

    本文主要介绍了c#中task与thread区别及其使用的方法示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Unity 制作一个分数统计系统

    Unity 制作一个分数统计系统

    项目中经常遇到分数统计的需求,例如操作正确则计分,相反则不计分失去该项分数,为了应对需求需要一个分数统计系统。本文主要介绍了通过Unity实现这样的一个计分系统,快来跟随小编一起学习吧
    2021-12-12
  • C#实现判断操作系统是否为Win8以上版本

    C#实现判断操作系统是否为Win8以上版本

    这篇文章主要介绍了C#实现判断操作系统是否为Win8以上版本,本文讲解了利用C#获取OS的版本号、利用反射获取当前正在运行的程序的版本信息、 利用C#判断当前操作系统是否为Win8系统等内容,需要的朋友可以参考下
    2015-06-06
  • LINQ基础之Join和UNION子句

    LINQ基础之Join和UNION子句

    这篇文章介绍了LINQ使用Join和UNION子句的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#中使用ADOMD.NET查询多维数据集的实现方法

    C#中使用ADOMD.NET查询多维数据集的实现方法

    这篇文章主要介绍了C#中使用ADOMD.NET查询多维数据集的实现方法,详细讲述了C#中使用ADOMD.NET查询多维数据集的原理与实现技巧,需要的朋友可以参考下
    2014-10-10
  • C#使用Objects Comparer进行对象比较

    C#使用Objects Comparer进行对象比较

    本文主要介绍了C#使用Objects Comparer进行对象比较,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论