繁体   English   中英

用两种不同的方式比较两个字符串

[英]Compare two strings in two different ways

我已经用C#编写了这个小程序

private void Form1_Load(object sender, EventArgs e)
{
    MessageBox.Show(("7797302D875A8922EBFC7DECBD352FE88F35642F" == "‎7797302D875A8922EBFC7DECBD352FE88F35642F").ToString());

    var a = "7797302D875A8922EBFC7DECBD352FE88F35642F";
    var b = "7797302D875A8922EBFC7DECBD352FE88F35642F";
    MessageBox.Show((a == b).ToString());

}

第一个messageBox显示为“ False”,而Messagebox显示为“ True”。

我的问题是:为什么不能将两个字符串与==运算符进行比较?

您的第二个字符串具有从左到右的不可见标记字符,为(U+200E)

看起来只是另一个复制粘贴问题。

在此处输入图片说明

差异不是由比较引起的,而是您的测试字符串字符串。

第一种情况的第二个字符串以不可见的0x200E开头,即Unicode 左右标记

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM