我有一个关于字符串比较与字符比较的问题。
字符>
和0
(零)分别具有十进制值62
和48
。
当我在下面的代码中比较两个字符时,我得到了True
的值(这是正确的)
Console.WriteLine('>' > '0');
在下面的代码中,当我比较两个单字符字符串时,我得到了值为-1
的结果,这表明“>”小于“0”(默认文化是英语)。
Console.WriteLine(string.Compare(">", "0"));
以下代码中比较"3"和"1"(51
和49
的编码值),返回1
(符合预期)
Console.WriteLine(string.Compare("3", "1"));
另外,string.Compare(string str1, string str2)
的文档说明如下:
比较使用当前区域性进行,以获取特定于区域性的信息,例如大小写规则和单个字符的字母顺序
您能否解释一下(或提供一些文档参考),例如如何实现字符串比较,以及如何计算单个字符的字母顺序等?