关于字符串比较

时间:2013-02-17 06:41:08

标签: java string

我正在检查用于字符串compsrsion的字符串比较方法,并在decomplier中探索字符串类,并且知道基本上有四种方法

equals()
equalsIgnoreCase()
compareTo()
compareToIgnore()

现在我想知道我们使用的两个方法之间的区别是equals()和compareTo(),基本上请告知为什么字符串类保留了这两种方法..

String tv = "Bravia";
        String television = "Bravia";

        // String compare example using equals
        if (tv.equals(television)) {
            System.out.println("Both tv and television contains same letters and equal by equals method of String");
        }

        // String compare example in java using compareTo
        if (tv.compareTo(television) == 0) {
            System.out.println("Both tv and television are equal using compareTo method of String");
        }

输出: -

Both tv and television contains same letters and equal by equals method of String
Both tv and television are equal using compareTo method of String

5 个答案:

答案 0 :(得分:2)

equals()返回boolean; true / false。字符串A是否等于B?

compareTo()返回一个整数,不仅表示字符串是否相等,而且表示哪一个“低于”另一个 - “lower”定义为自然字母顺序。

对于两个字符串ab,如果仅a.equals(b)a.compareTo(b),则0为真。

例如:

String a = "String1";
String b = "String2";

a.compareTo(b)将返回一个负整数(不一定是-1!),因为按字母顺序,字符串“String1”低于“String2”;如果你按升序对两个字符串进行排序,那么“String1”将首先出现。此外,a.equals(b)将返回false,因为字符串不相等。

然而:

String a = "Example";
String b = "Example";

在这种情况下,a.compareTo(b)将返回0(因为字符串相等),a.equals(b)将返回true(同样,因为字符串相等)。

关于“ignoreCase”变体:

String a = "String1";
String b = "string1";

在这种情况下,a.compareToIgnoreCase(b)将返回0;那是因为,当忽略大小写时,两个字符串是相同的。此外,出于同样的原因,a.equalsIgnoreCase(b)将返回0

答案 1 :(得分:1)

equalsequalsIgnoreCase返回boolean值,表示“一个与另一个相等,或者不是”

compareTocompareToIgnoreCase()返回三态整数,0-11

  • 0如果它们相等,则按比例
  • 1如果 compareTo*()的参数在顺序上比在
  • 上调用compareTo*()的对象更大
  • -1如果compareTo*()的参数较小 顺序比您调用compareTo*()上的对象。

答案 2 :(得分:0)

这两种方法都是必需的。 String从Object继承equals,并且在实现Comparable接口时需要compareTo。

答案 3 :(得分:0)

Strings实现Comparable接口,然后绑定它来实现compareTo方法。

可投放广告的界面

当对象包含在任何已排序的集合中时,它便于对象的排序。因此,当您将字符串放入任何已排序的集合(如TreeSet)时,您将如何告诉java如何对对象进行排序。这就是coompareTo()方法的用武之地。它被集合用于对象进行排序。

String tv = "Bravia";
    String television = "Bravia";

    // String compare example using equals
    if (tv.equals(television)) {
        System.out.println("Both tv and television contains same letters and equal by equals method of String");
    }

    // String compare example in java using compareTo
    if (tv.compareTo(television) == 0) {
        System.out.println("Both tv and television are equal using compareTo method of String");
    }

    if (tv.compareTo(television) < 0){

    System.out.println("tv comes before  using compareTo method of String");
    }

if (tv.compareTo(television) > 0){

    System.out.println("tv comes after using compareTo method of String");
    }

答案 4 :(得分:0)

compareTo():返回负整数,零或正整数,因为此对象小于,等于或大于指定对象。来自compareTo()

equals():equals()方法比较两个对象的相等性,如果它们等于则返回true,返回false source here