我有一個與字符串比較和字符比較相關的問題。字符串比較和單個字符的字母順序
字符>
和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