You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中compareTo函数返回的int值具体含义是什么?

Kotlin 字符串 compareTo 比较规则说明

Kotlin 字符串的compareTo函数遵循Unicode码点逐位字典序规则,具体逻辑如下:

  • 从两个字符串的首位字符开始,按索引顺序依次对比相同位置的字符
    • 若某一位置的两个字符不相等,直接返回「当前字符串该位置字符的Unicode码值 - 对比字符串同位置字符的Unicode码值」,对比直接终止
    • 若所有相同索引位置的字符都完全相等,返回「当前字符串长度 - 对比字符串长度」

示例逐一解释

示例1:"Hello World".compareTo("a") 返回 -25

首字符对比就出现差异:

  • "Hello World" 首字符是H,Unicode码值为72
  • 对比字符串"a"的首字符是a,Unicode码值为97
    计算差值为 72 - 97 = -25,所以"Hello World"确实小于"a"。返回值是两个字符的实际码差,没有固定为-1这类数值,是实现上直接返回差值效率更高,且符合Comparable接口只要求返回正负零的通用约定。

示例2:"Hello World".compareTo("HelloWorld") 返回 -55

前5位字符H e l l o完全相同,第6位出现差异:

  • "Hello World" 第6位是空格,Unicode码值为32
  • "HelloWorld" 第6位是W,Unicode码值为87
    差值为32 - 87 = -55,所以"Hello World"小于"HelloWorld"。

示例3:"Hello World".compareTo("Hello World") 返回55

前6位字符H e l l o 空格完全相同,第7位出现差异:

  • "Hello World" 第7位是W,Unicode码值为87
  • "Hello World" 第7位是第二个空格,Unicode码值为32
    差值为87 - 32 = 55,所以"Hello World"大于"Hello World"。

内容的提问来源于stack exchange,提问作者Sepideh Abadpour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:39:01