文
章
目
录
章
目
录
Java String.compareTo() 方法是以区分大小写的方式按字典顺序比较两个字符串。对于不区分大小写的比较,请使用 compareToIgnoreCase() 方法。
字符串的字典顺序
如果一个字符串 ‘string1’ 在字典中出现在另一个字符串 ‘string2′ 之前,那么可以说在字符串比较中,’string2’ 大于 ‘string1’。
- string1 > string2 – 在字典中,‘string1’ 在‘string2’ 之后。
- string1 < string2 – 在字典中,‘string1’ 在‘string2’ 之前。
- string1 = string2 – ‘string1’ 和 ‘string2’ 是相等的。
String.compareTo() API
compareTo() 函数接受一个 String 类型的参数。第二个字符串是调用该方法的 String 对象本身。请注意,compareTo() 方法基于字符串中每个字符的 Unicode 值进行字符串比较。
int result = string1.compareTo(string2);
此方法的结果是整数值,其中 –
- 正整数– string1按字典顺序位于string2后面。
- 负整数– string1按字典顺序位于string2之前。
- 零——两个字符串相等。
3. 比较字符串的Java程序
以下 Java 程序使用 compareTo() 方法比较两个字符串(区分大小写)。我们使用 Hamcrest 匹配来断言返回值。
String name = "alex";
//same string
assertThat(name.compareTo("alex"), equalTo(0));
//Different cases
assertThat(name.compareTo("Alex"), greaterThan(0));
assertThat(name.compareTo("ALEX"), greaterThan(0));
//Different strings
assertThat(name.compareTo("alexa"), lessThan(0));
assertThat(name.compareTo("ale"), greaterThan(0));
4.compareTo()和equals()的区别
CompareTo() 和equals()方法之间的区别是:
- Compare ()按字典顺序进行比较(字典排序),而equals()检查两个字符串的内容,尽管这两种方法都区分大小写。
- CompareTo()的返回类型是一个整数类型,表明该字符串大于、小于或等于另一个字符串。equals()的返回类型是boolean,表示两个字符串的内容是否相等。