Why the capital letter is greater than small letter in .Net?
和Java。 </P >
1 | "A".compareTo("a"); return -32 //"A" is less than"a". |
净,用string.compareto:和。 </P >
1 | "A".CompareTo("a"); return 1 //"A" is greater than"a". |
净,用char.compareto:和。 </P >
1 | 'A'.CompareTo('a'); return -32 //"A" is less than"a". |
我知道在Java应用中的地位和compares串字符Unicode黑板,但公司净吨。这信是如何determines资本比大和小的信。净吗? </P >
string.compareto法(字符串) </P >
我能找到的医生说:
This method performs a word (case-sensitive and culture-sensitive) comparison using the current culture.
因此,它不像Java的EDCOX1 0,它默认使用字典代码比较,使用Unicode代码点,正如你所说的。
因此,在.NET中,它取决于当前的"文化"(Java会称之为"区域设置"),我猜。
看来,如果你想在.NET中做字符串比较,那么你就必须使用EDCOX1 1。
相反,如果您想在Java中进行与区域相关的字符串比较,则需要使用EDCOX1 2。
最后,msdn上的另一个链接显示了文化对比较甚至字符串相等的影响。
从Java字符串
Returns:
the value 0 if the argument string is equal to this string; a value less than 0 if this string is lexicographically less than the string argument; and a value greater than 0 if this string is lexicographically greater than the string argument.
从.NET字符串.CompareTo
This method performs a word (case-sensitive and culture-sensitive)
comparison using the current culture. For more information about word,
string, and ordinal sorts, see System.Globalization.CompareOptions.
这篇文章解释了比较类型之间的区别
文档解释了所有比较类型之间的区别;
如果你看这两个,当前文化和序数
1 2 3 4 5 6 7 8 9 | StringComparison.Ordinal: LATIN SMALL LETTER I (U+0069) is less than LATIN SMALL LETTER DOTLESS I (U+0131) LATIN SMALL LETTER I (U+0069) is greater than LATIN CAPITAL LETTER I (U+0049) LATIN SMALL LETTER DOTLESS I (U+0131) is greater than LATIN CAPITAL LETTER I (U StringComparison.CurrentCulture: LATIN SMALL LETTER I (U+0069) is less than LATIN SMALL LETTER DOTLESS I (U+0131) LATIN SMALL LETTER I (U+0069) is less than LATIN CAPITAL LETTER I (U+0049) LATIN SMALL LETTER DOTLESS I (U+0131) is greater than LATIN CAPITAL LETTER I (U+0049) |
序数是唯一的一个EDOCX1×3,因此类似Java。
这是由ASCII字符集中的字符顺序决定的。如果您要在程序中执行任何形式的数据操作,那么您应该真正理解这一点。
我不确定网格控件是否有任何允许您修改排序顺序的属性,如果没有,则必须编写自己的排序子例程。
您可以将std::sort函数与用户定义的谓词函数一起使用,该函数将所有小写字母放在大写字母之前。