首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于字符串比较

关于字符串比较
EN

Stack Overflow用户
提问于 2013-02-17 14:41:08
回答 5查看 109关注 0票数 0

我检查了用于字符串压缩的字符串比较方法,并研究了反编译器中的string类,发现基本上有四种方法

代码语言:javascript
复制
equals()
equalsIgnoreCase()
compareTo()
compareToIgnore()

现在我想知道我们使用的两个方法之间的区别,它们是equals()和compareTo(),基本上请说明为什么string类保留了这两个方法。

代码语言:javascript
复制
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");
        }

输出:-

代码语言:javascript
复制
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
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-17 14:49:14

字符串实现可比较的接口,然后它绑定到实现compareTo方法。

兼容接口

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

代码语言:javascript
复制
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");
    }
票数 0
EN

Stack Overflow用户

发布于 2013-02-17 14:43:21

equals()返回一个booleantrue/false。字符串A是否等于B?

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

对于两个字符串ab,只有当a.compareTo(b)0时,a.equals(b)才为true。

例如:

代码语言:javascript
复制
String a = "String1";
String b = "String2";

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

但是:

代码语言:javascript
复制
String a = "Example";
String b = "Example";

在本例中,a.compareTo(b)将返回0 (因为字符串相等),a.equals(b)将返回true (同样,因为字符串相等)。

关于"ignoreCase“变体:

代码语言:javascript
复制
String a = "String1";
String b = "string1";

在本例中,a.compareToIgnoreCase(b)将返回0;这是因为当忽略大小写时,两个字符串是相同的。同样,出于同样的原因,a.equalsIgnoreCase(b)将返回0

票数 2
EN

Stack Overflow用户

发布于 2013-02-17 14:44:21

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

compareTocompareToIgnoreCase()返回一个三态整数、0-11

如果它们相等,则比较每个顺序的

  • 1如果compareTo*()的参数在顺序上大于您调用的对象,则为

  • 1如果compareTo*()的参数在顺序上小于您对其调用的对象,则为compareTo*()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14918660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档