网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

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

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

在这里插入图片描述

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";<360>

            Console.WriteLine("样例3:{0}", string.Compare(str1, str2));

        }

    }

}

三、CompareTo方法

str1.CompareTo(str2)

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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(str1str2)

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

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

在这里插入图片描述

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";<1360>

            str2 = "ABCD";

            Console.WriteLine("样例4:{0}", string.CompareOrdinal(str1, str2));

        }

    }

}


评论 0

暂无评论
0
0
0
立即
投稿
发表
评论
返回
顶部