我需要创建一个Morsealphabet并且必须插入BinaryTree
。我需要创建isLess
和isGreater
方法。所以这就像我开始的那样:
public boolean isLess(Buchstabe a) {
if (a != null) {
if (!a.isEqual(this)) {
String aCode = a.getCode();
if (aCode.compareTo(this.getCode()) > 0)
return true;
else
return false;
}
else
return false;
}
else
return false;
}
public boolean isGreater(Buchstabe a) {
if (!a.isEqual(this)) {
String aCode = a.getCode();
if (aCode.compareTo(this.getCode()) > 0)
return false;
else
return true;
}
else
return false;
}
所以语法应该是那个。必须小于 -
的。并且 - 可以作为字符串处理,因此您应该能够比较"."
和"-.--"
"."
应该小于"-.--"
- 我的解决方案让我完全废话。你有解决方案吗?
答案 0 :(得分:1)
如果参数是一个按字典顺序排列等于此字符串的字符串,则compareTo()
方法返回0
,因此您不需要重新发明轮子;如果参数是按字典顺序大于此字符串的字符串,则小于0
的值;如果参数是按字典顺序小于此字符串的字符串,则值大于0
。因此,您不需要制定自己的方法来实现这一目标
假设您的getCode()
方法获得了正确的代码,我会这样做
String aCode = a.getCode();
int code = aCode.compareTo(this.getCode())
if (code == 0){
// they are equal
}
if (code < 0){
// aCode is greater than this.getCode
}
if (code > 0){
// aCode is less than this.getCode
}
答案 1 :(得分:0)
".".compareTo("-")
给了我1,因此"."
被认为大于Java中的"-"
。
那么显而易见
if(aCode.compareTo(this.getCode())>0)
return false;
如果aCode
大于this.getCode()
,那么会返回false,这是您想要的对象。在你的回报中交换true
和false
应该可以解决问题。