मेरे पास स्ट्रिंग तुलना बनाम चरित्र तुलना से संबंधित एक प्रश्न है।व्यक्तिगत वर्णों की स्ट्रिंग तुलना और वर्णमाला क्रम
अक्षरों >
और 0
(शून्य) के अनुसार निम्नलिखित दशमलव मान 62
और 48
हैं।
जब मैं निम्नलिखित कोड में दो पात्रों की तुलना, मैं मूल्य True
(जो सही है)
Console.WriteLine('>' > '0');
जब मैं निम्नलिखित कोड में दो एक चरित्र तार की तुलना मिलता है, मैं मूल्य -1
जो कि इंगित करता है मिल ">" से "0" (डिफ़ॉल्ट संस्कृति अंग्रेजी है) में कम है
Console.WriteLine(string.Compare(">", "0"));
"3" और "1" (51
और 49
कोड valu के तुलना जबकि ते) निम्न कोड में देता 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 ("ए", "बी")' रिटर्न '-1' -' "ए" '' "बी" से कम है। '"> "' '" से कम क्यों है? – dtb
मैंने अपना प्रश्न अपडेट कर लिया है: जब आप "3" से "1" की तुलना करते हैं तो आपको मान '1' मिलता है जहां" 3 "कोड 51 है और" 1 "में कोड 49 (अपेक्षित) है। तो यह आपके स्पष्टीकरण से मेल नहीं खाता है। – Alexandar
@Alexandar अच्छा बिंदु। मुझे लगता है कि पीटकिर्कम ने – DiskJunky