Java 和 C# 之间区分大小写的区别[重复]

问题描述 投票:0回答:1

有人知道为什么“compareTo”方法在以区分大小写的方式比较两个字符串时在 Java 和 C# 中表现不同吗?

我的意思是,如果我用 Java 输入这段代码:

"你好".compareTo("再见") > 0

它返回“false”,因为大写的 H 低于小写的 b。然而,在 C# 中使用 CompareTo 方法的相同指令返回“true”。

谁能解释一下为什么?

java c# case-sensitive
1个回答
0
投票

Java String.compareTo 方法根据 Unicode 代码点值强加排序。

public int CompareTo(String anotherString)
比较两个字符串 按字典顺序。比较基于 Unicode 值 字符串中的每个字符。

C# 使用依赖于语言环境的比较:

使用 String.Equals 以及 == 和 != 运算符进行相等性测试 与使用 String.CompareTo 进行字符串比较不同, 比较(字符串,字符串)方法。它们都执行区分大小写的操作 比较。然而,虽然平等测试执行序数 比较时,CompareTo 和 Compare 方法执行文化感知 使用当前文化进行语言比较。因为这些默认 比较方法的不同之处在于比较字符串的方式,我们 建议您始终通过以下方式明确代码的意图 调用显式指定比较类型的重载 来表演。

这里的基本教训是“阅读您调用的方法的文档”。

© www.soinside.com 2019 - 2024. All rights reserved.