在 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/