服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#的字符串比较

C#的字符串比较

2022-11-24 11:12小狐狸FM C#

这篇文章主要介绍了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

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

C#的字符串比较

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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()方法以实例对象本身和目标字符串进行比较。比较字符串并不是比较字符串的长度,而是从首字符开始逐个比较字符的大小,如果已经分出大小则结束比较,如果相等则继续比较下一个字符,直到分出大小或到达字符串尾。

C#的字符串比较

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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

C#的字符串比较

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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码的差值

C#的字符串比较

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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));
        }
    }
}

总结

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

原文链接:https://blog.csdn.net/smallfox233/article/details/116994188

延伸 · 阅读

精彩推荐
  • C#C#中Equals方法的常见误解

    C#中Equals方法的常见误解

    equals方法被用来检测两个对象是否相等,即两个对象的内容是否相等。本文主要介绍的是equals方法,初学者对它几个常见的误解,一起来看。...

    C#教程网9932021-10-29
  • C#轻松学习C#的运算符

    轻松学习C#的运算符

    轻松学习C#的运算符,对C#的运算符感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的运算符。...

    丿木呈广予口贝6052021-11-03
  • C#C#计算矩阵的秩实例分析

    C#计算矩阵的秩实例分析

    这篇文章主要介绍了C#计算矩阵的秩实现方法,以实例形式较为详细的分析了C#计算矩阵秩的原理与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    北风其凉5172021-10-11
  • C#C#连接MySQL操作详细教程

    C#连接MySQL操作详细教程

    这篇文章主要为大家详细介绍了C#连接MySQL操作详细教程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    科院唐大大3422022-08-30
  • C#详解C#中SqlParameter的作用与用法

    详解C#中SqlParameter的作用与用法

    本篇文章主要介绍了C#中SqlParameter的作用与用法,因为通过SQL语句的方式,有时候存在脚本注入的危险,所以在大多数情况下不建议用拼接SQL语句字符串方式...

    -且听风吟-3992021-12-16
  • C#C#拼图游戏编写代码

    C#拼图游戏编写代码

    这篇文章主要为大家详细介绍了C#拼图游戏的编写代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    蜡笔小黑6952021-12-31
  • C#C#中DataTable 转实体实例详解

    C#中DataTable 转实体实例详解

    这篇文章主要介绍了C#中DataTable 转实体实例详解,需要的朋友可以参考下...

    Langu10602021-12-31
  • C#c# 动态加载dll文件,并实现调用其中的简单方法

    c# 动态加载dll文件,并实现调用其中的简单方法

    下面小编就为大家带来一篇c# 动态加载dll文件,并实现调用其中的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来...

    C#教程网11602021-12-22