string.Compare字符串比较函数中文详解以及与Equal、==的区别

Chinar blog www.chinar.xin

String 比较函数详解


本文提供全流程,中文翻译

助力快速理解 String 字符串比较函数的区别

为初学者节省宝贵的时间,避免采坑!

Chinar —— 心分享、心创新!

我们的初衷是将一种简单的生活方式带给世人

使有限时间 具备无限可能

Chinar 教程效果:



全文高清图片,点击即可放大观看 (很多人竟然不知道)


1 Intro —— 简介


有许多初学者,对于 String 类提供的几个比较函数都算会用。

但编程,我们不能知其然不知其所以然,这种学习态度会导致我们在细节上的把控不到位,从而生产出来的代码就可能不安全,或是效率不高。

今天我来为大家详细的介绍一下,C#提供的这几个比较之间的不同。


2 Compare ―― 比较

string.Compare

//返回值:
// 1:大于
// 0:等于
//-1:小于
static void Main(string[] args)
{
    string 变量1 = "abc";
    string 变量2 = "ABC";
    int 返回值1 = string.Compare(变量1, 变量2, true);                     //忽略大小写
    int 返回值2 = string.Compare(变量1, 变量2, StringComparison.Ordinal); //序号(二进制)排序规则 
    Console.WriteLine(返回值1);                                       // 0 相同
    Console.WriteLine(返回值2);                                       // 32 返回两者相对位置
    Console.ReadLine();
}

比较字符串是按照字符串中的字符一个个比较,只要一个字符不相同,那么就停止比较得出结果。
而字符的比较则是比较其Unicode值,而非ASCII码值,因为ASCII是不可能容纳下全世界这么多种语言这么多字符。
string是微软封装的一个字符串类,在内部他已经对 = = 操作符进行了重写。重写后他比较的则是两个变量的内容是否相同,重写后的 =
= 操作符内部调用的即是 equals 方法,所以输出的是true

重载中可忽略大小写

也可根据国家语言进行区分

还可根据上边说的 unicode 编码序号,将以二进制的规则进行对比,提升效率。

只需要传入不同枚举类型,即可

  摘要: 使用当前所属地区(国家语言)排序规则比较字符串。
 CurrentCulture = 0,
 
 
 摘要: 使用当前所属地区(国家语言)排序规则比较字符串。并忽略大小写,来比较字符串。
 CurrentCultureIgnoreCase = 1,
 
  
 摘要: 使用固定区域性(固定区域只与英语关联,与其他语言都不关联)比较字符串。
 InvariantCulture = 2,
 
 
 摘要: 通过使用区分区域性的排序规则、固定区域性,并忽略所比较的字符串的大小写,来比较字符串。
 InvariantCultureIgnoreCase = 3,
 
 
 摘要: 使用序号(二进制)排序规则比较字符串。 
 Ordinal = 4,
 
摘要:   使用序号(二进制)排序且忽略大小写,比较字符串。 性能略低于 Ordinal
OrdinalIgnoreCase = 5

Equals方法用于方便地判定两个字符串是否相同,有两种重载形式:

public boolEquals(string)

public static boolEquals(string,string)


3 Compare ―― 比较

Equals 方法用于方便地判定两个字符串是否相同,有两种重载形式:

public boolEquals(string)

public static boolEquals(string,string)

因其属于 Object 类,所以可对任何类进行重写 Equals 函数,而使其具备对比性质。


支持

May Be —— 开发者,总有一天要做的事!


拥有自己的服务器,无需再找攻略

Chinar 提供一站式《零》基础教程

使有限时间 具备无限可能!

先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


Chinar 免费服务器、建站教程全攻略!( Chinar Blog )


Chinar

END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值