java - String 类的 compareTo() 方法返回什么

标签 java string compareto

在 Oracle 上的 Java API 中 website : "compareTo Returns: "如果参数字符串等于此字符串,则值为 0;如果此字符串按字典顺序小于字符串参数,则该值小于 0;如果此字符串按字典顺序大于字符串参数,则为大于 0 的值。""

这是一个 if 语句:

String a = "abd";
String b = "abc";

if(a.compareTo(b) >= 1)

返回真 因为字符串 a 在字典序上更大。

我的问题是,compareTo 是否总是返回 0、1 或 -1?还是返回字符串大于或小于字符串参数的实际数量

所以在上面的 if 语句中,因为“abd”比“abc”大一,它返回 1 吗?

最佳答案

就您而言,无法说明 compareTo 返回值的大小,只能说明符号。在实践中,大多数 compareTo 实现将返回 -1、0 或 1,但契约(Contract)明确说明是正数还是负数,您应该相应地编写代码(例如,使用 int compare = a .compareTo(b); if(compare > 0) {...} else...).

关于java - String 类的 compareTo() 方法返回什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18798890/

相关文章:

java - 比较字符串类型的日期

java - 禁止在 FlowLayout 中使用多行?

java - 在另一个面板上绘制新面板

java - Proguard 将所有混淆的类移动到一个包中

java - 当常用操作较多时,类如何设计?

r - 提取特殊字符之间的文本 R

Java 没有自动装箱 int 的 compareTo 方法?

c - 字数统计问题

R - gsub 从字符串中删除标点符号和数字

Java 泛型比较 |实现比较