Java教程 目录

Java字符串比较

Java String compareTo()方法用于按字典顺序比较两个字符串。此方法在Comparable接口中声明。由于String实现了Comparable接口,因此它提供了compareTo()方法实现。

Java字符串比较

Java StringcompareTo()方法有两种变体。

1. compareTo(String anotherString)方法

此方法将String对象与按字典顺序传递的anotherString参数进行比较。
如果String对象在传递的参数之前,则返回负整数,如果String对象在参数String之后,则返回正整数。

当两个String都具有相同的值时返回0,在这种情况下,equals(String str)方法将返回true

比较是基于字符串中每个字符的Unicode值。应该查看String类源代码以了解此方法的工作方式。

2. compareToIgnoreCase(String str)方法

这个方法与第一个类似,只是它忽略了大小写。它使用String CASE_INSENSITIVE_ORDER比较器进行不区分大小写的比较。
如果此方法的返回值为0,则equalsIgnoreCase(String str)将返回true。当指定的String大于,等于或小于此String时,此方法返回负整数,零或正整数,比较忽略大小写。

下面来看一个java类,演示如何使用java string compareTo()方法的用法。

public class StringCompareToExample {

    /**
     * This class show String compareTo examples
     * @param args
     */
    public static void main(String[] args) {
        String str = "ABC";
        System.out.println(str.compareTo("DEF"));
        System.out.println(str.compareToIgnoreCase("abc"));
    }

}

执行上面示例代码,得到以下结果 -

-3
0

输出为负值,这是因为“ABC”在字典上比“DEF”小。因为它逐个比较字符值。也可以使用以下测试程序进行确认。

public class Test {

    public static void main(String[] args) {
        char a = 'A';
        char d = 'D';
        System.out.println(a-d); //prints -3
    }

}

因此,当“ABC”与“DEF”进行比较时,将比较第一个索引处的字符。由于它们是不相同,并且’A’在字典之前出现在’D’之前,它返回一个负整数,它们之间有差值,因此输出为-3

因此,如果将“AABC”与“ADBC”进行比较,那么将获得相同的输出:-3。这就是Java String compareTo()方法示例的全部内容。请注意,此方法与String equals()方法不同。


上一篇:Java字符串子序列
下一篇:Java子字符串