【发布时间】:2013-06-25 20:34:53
【问题描述】:
在 Java 中:
"A".compareTo("a"); return -32 //"A" is less than "a".
在 .Net 中,使用 String.CompareTo:
"A".CompareTo("a"); return 1 //"A" is greater than "a".
在 .Net 中,使用 Char.CompareTo:
'A'.CompareTo('a'); return -32 //"A" is less than "a".
我知道 Java 使用它在 unicode 表中的位置来比较字符串字符,但 .Net 不是。如何确定.Net中哪个大写字母大于小写字母?
【问题讨论】:
-
我没有在你的第二行中得到你的问题你正在比较 A 和 a 并且它给你 1 这意味着 A 大于 a 你的问题是什么意思?
-
可能是因为locale。 (虽然我不会说 C#...)
-
在内部我使用 InternalCompareString Windows API 函数调用,但无法找到有关它的文档。
-
我的问题是为什么.Net确定哪个“A”大于“a”,而不是返回值1。在.Net中,String.CompareTo返回1(大于零)意味着这个实例大于strB。如果我使用 Char.CompareTo: 'A'.CompareTo('a');返回值为-32,很好,但是String.CompareTo返回1,所以我想知道为什么以及如何。
-
正如我在下面所说的,这可能取决于您的“文化”。不知道 .NET 是什么意思……