在Java中:
"A".compareTo("a"); return -32 //"A" is less than "a".
Run Code Online (Sandbox Code Playgroud)
在.Net中,使用String.CompareTo:
"A".CompareTo("a"); return 1 //"A" is greater than "a".
Run Code Online (Sandbox Code Playgroud)
在.Net中,使用Char.CompareTo:
'A'.CompareTo('a'); return -32 //"A" is less than "a".
Run Code Online (Sandbox Code Playgroud)
我知道Java使用它在unicode表中的位置比较字符串字符,但.Net不是.如何确定哪个大写字母大于.Net中的小写字母?
我能找到的医生说:
\n\n\n\n\n此方法使用当前区域性执行单词(区分大小写和区域性)比较。
\n
因此,它与Java 的.compareTo()不太一样,Java 默认情况下使用 Unicode 代码点进行字典比较,正如您所说。
因此,在 .NET 中,这取决于您当前的“文化”(我猜 Java 会称之为“语言环境”)。
\n\n看来如果你想在.NET中进行字符串比较“\xc3\xa0 la Java”,你必须改用String.CompareOrdinal()。
相反,如果您想在 Java 中进行与语言环境相关的字符串比较,则需要使用Collator.
最后, MSDN 上的另一个链接显示了文化对比较甚至字符串相等的影响。
\n