如何在不使用compareTo的情况下比较Java中的字符串?

时间:2014-10-05 00:04:58

标签: java string interface comparable compareto

我需要通过字符串属性比较两个对象,如何在不使用compareTo()方法的情况下执行此操作?

我的代码看起来像这样:

public int compareTo(className b){
if (b instanceof className){
        className a = (ClassName ) b;
    if (this.stringName==a.stringName) return 0;   
    if (this.stringName > a.stringName) return 1;   // <- How can I know if it this bigger or smaller? Can't use < > operators on strings.
       else 
            return -1;
}

1 个答案:

答案 0 :(得分:2)

首先,不要使用==运算符来比较相等性。此运算符用于对象标识。但是可以有两个不同的对象代表相同的字符串。请改用String.equals()方法。

String.compareTo()方法是比较字符串的首选方法。这完全是为了那个意思。

如果要实现自己的compareTo()方法,则可以迭代各个字符(每个字符char,请参阅方法String.charAt())。 char是基本类型,因此您可以使用运算符==<>来比较两个字符。我不会发布整个解决方案,因为你想通过自己尝试来学习。