设为首页收藏本站 距【华南国际工业博览会】宝安新馆开幕 : :

Halcon视觉之家 - 51Halcon专注于机器视觉技术

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 657|回复: 1

[资料] C#中string.Compare原理,如何比较大小

[复制链接]
  • TA的每日心情
    开心
    昨天 14:21
  • 签到天数: 844 天

    连续签到: 1 天

    [LV.10]以坛为家III

    185

    主题

    910

    帖子

    5427

    积分

    Rank: 9

    积分
    5427

    热心会员突出贡献切换助手验证会员最佳新人

    发表于 2020-7-9 18:02:49 | 显示全部楼层 |阅读模式

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    1. int n = string.Compare("a", "A");
    2. Console.WriteLine(n);
    复制代码

    我们可以看到n是等于-1的也就是a小于A,但是直观上感觉a应该是A大的,毕竟转换成16进制是0x61肯定比0x41大。
    参数说明如下:
    1. //
    2.         // 摘要:
    3.         //     比较两个指定的 System.String 对象,并返回一个指示二者在排序顺序中的相对位置的整数。
    4.         //
    5.         // 参数:
    6.         //   strA:
    7.         //     要比较的第一个字符串。
    8.         //
    9.         //   strB:
    10.         //     要比较的第二个字符串。
    11.         //
    12.         // 返回结果:
    13.         //     一个 32 位带符号整数,指示两个比较数之间的词法关系。值Condition小于零strA 小于 strB。零strA 等于 strB。大于零strA 大于
    复制代码

    也就是说,如果前面的字符串小于后面字符串就是-1,相等就是0,大于就是1,那么这个比较基准是怎么比较的呢?

    一直以为基于ASCII,但是后面想想应该是基于UNICODE的编码顺序,毕竟字符串范围不仅限于ASCII,但是这里却不是简单的UNICODE顺序,而且基于一套排序算法。
    大家可以在此下载排序权重表(Sorting Weight Tables):
    https://www.microsoft.com/en-us/download/details.aspx?id=10921
    我是win10 2004,所以下载win10版本的,对应文件名为:Windows 10 Sorting Weight Table.txt
    然后我们打开该txt找到我们的字符串“a”和“A”对应的十六进制编码,看看他们的权重:
    微信截图_20200709180105.png
    由此可以看到,虽然十六进制a比A大,但是a的权重却低于A,所以返回-1。


  • TA的每日心情
    无聊
    昨天 09:15
  • 签到天数: 372 天

    连续签到: 1 天

    [LV.9]以坛为家II

    0

    主题

    35

    帖子

    445

    积分

    Rank: 2Rank: 2

    积分
    445

    切换助手验证会员

    发表于 2020-7-10 08:57:04 | 显示全部楼层
    学习了,谢谢楼主
    您需要登录后才可以回帖 登录 | 会员注册

    本版积分规则

    视觉培训招生

    建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用

    算子查询| 申请友链| 小黑屋| 手机版| Archiver|

    © 2015-2021 51Halcon机器视觉  X3.4  粤ICP备15095995号 粤公网安备44030602000670号

    快速回复 返回顶部 返回列表