了解string.Compare()方法

  • 语法

public static int Compare ( string strA, string strB )

  • 返回值

返回值

说明

小于零

strA 小于 strB

strA 等于 strB

大于零

strA 大于 strB

  • 比较程序

并不是按字符串长度来比较的,而是: 

  1. 比较两个字符串的第一个字符:相等则比较第二个,不相等则直接返回结果;
  2. 比较两个字符串的第二个字符:相等则比较第三个,不相等则直接返回结果;
  3. 比较两个字符串的第三个字符:相等则比较第四个,不相等则直接返回结果;
  4. ……
  • 谁大谁小?

这是受计算机区域设置影响的,对于我们的中国区域设置,默认为:

null<零长度字符串<0<1<2<...<9<a<b<c<...<z<...<阿<...<不<...<吃<...<这<...

需要说明数字、字母也是拆开一个一个的比较的,比如:字符串 "200" 是小于 "3" 的,因为 "2" 小于 "3"。

 

运行代码:

string.Compare("阿","不")

结果为:-1

说明 阿<不

 

 改一下区域设置,在“控制面板”中,打开“区域和语言选项”,在“区域选项”中单击“自定义”,在“排序”标签中选择“笔划”,一路确定。再运行上列代码。

结果为:1

说明 阿>不

因为这是按笔划来的(“不”在这里笔划最少),不再是按拼音来的。我们改的这个区域设置只影响了中文,没有影响到数字和字母等。

参考:http://www.cftea.com/c/2009/10/7AFD1KGV7BT9RN6H.asp

原文地址:https://www.cnblogs.com/lilin/p/1726058.html