Java 中的字符串比较

“在字典上比较两个字符串”是什么意思?


答案 1

从@Bozho和@aioobe的答案开始,词典比较类似于人们在字典中可能找到的顺序。

Java String 类提供了用于按字典顺序比较 String 的方法。它是这样使用的。.compareTo ()"apple".compareTo ("banana")

此方法的返回值可以解释如下:int

  • 返回< 0,然后调用该方法的 String 在字典上排在第一位(在字典中排在第一位)
  • 返回 == 0,则两个字符串在字典上是等效的
  • 返回 > 0,然后首先在字典上传递给该方法的参数。compareTo

更具体地说,该方法在 ASCII 值中提供第一个非零差值。

因此,将返回值 (20)。由于这是一个正结果,因此参数 () 在字典上是第一位的。"computer".compareTo ("comparison")(int) 'u' - (int) 'a'"comparison"

例如,还有一个变体将返回。.compareToIgnoreCase ()0"a".compareToIgnoreCase ("A");


答案 2

“比较”一词略有误导。您不是在比较严格的相等性,而是在比较哪个字符串在字典中排在第一位(词典)。

此功能允许字符串集合可排序。

请注意,这非常依赖于活动区域设置。例如,在丹麦,我们有一个字符“å”,它曾经被拼写为“aa”,与两个单a的非常不同(编辑:如果发音为“å”!)。因此,丹麦语排序规则将两个连续的 a 视为“å”,这意味着它遵循 z。这也意味着丹麦语词典的排序方式与英语或瑞典语词典不同。