我需要通过字符串属性比较两个对象,如何在不使用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;
}
答案 0 :(得分:2)
首先,不要使用==
运算符来比较相等性。此运算符用于对象标识。但是可以有两个不同的对象代表相同的字符串。请改用String.equals()
方法。
String.compareTo()
方法是比较字符串的首选方法。这完全是为了那个意思。
如果要实现自己的compareTo()
方法,则可以迭代各个字符(每个字符char
,请参阅方法String.charAt()
)。 char
是基本类型,因此您可以使用运算符==
,<
和>
来比较两个字符。我不会发布整个解决方案,因为你想通过自己尝试来学习。