我有一个与字符串比较和字符比较相关的问题。字符串比较和单个字符的字母顺序
字符>
和0
(零)相应地具有以下十进制值62
和48
。
当我在下面的代码比较两个字符,我得到的值True
(这是正确的)
Console.WriteLine('>' > '0');
当我在下面的代码比较两个单字符的字符串,我得到的值-1
这表明“>” 小于 “0”(默认培养是英语)
Console.WriteLine(string.Compare(">", "0"));
而 “3” 和 “1”(51
和49
代码VALU的比较ES)在下面的代码返回1
(如预期)
Console.WriteLine(string.Compare("3", "1"));
此外,string.Compare(string str1, string str2)
文档说:
比较使用当前培养以得到区域性特定 信息,诸如套管规则和的 单个字符的字母顺序
你能解释(或提供参考了一些文档)如何小号例如,实施比较。 个人字符的字母顺序是如何计算的?
[MSDN](http://msdn.microsoft.com/en-us/library/84787k22.aspx)显示“String.Compare(STRA,STRB) - 小于零 - STRA是少比strB。“例如,'string.Compare(“A”,“B”)'返回'-1' - '“A”'小于'“B”'。为什么'“>”'小于'“0”'? – dtb 2013-02-19 21:15:23
我已经更新了我的问题:当您比较“3”到“1”时,您得到值“1”,其中“3”代码为51,“1”代码为49(如预期的那样)。所以这与你的解释不符。 – Alexandar 2013-02-19 21:18:59
@Alexandar好点。我认为PeteKirkham回答比我更好 – DiskJunky 2013-02-19 21:26:18