比较Ascii代码

时间:2015-04-08 13:45:32

标签: java ascii

我需要创建一个Morsealphabet并且必须插入BinaryTree。我需要创建isLessisGreater方法。所以这就像我开始的那样:

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;
}

所以语法应该是那个。必须小于 - 的。并且 - 可以作为字符串处理,因此您应该能够比较".""-.--" "."应该小于"-.--" - 我的解决方案让我完全废话。你有解决方案吗?

2 个答案:

答案 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,这是您想要的对象。在你的回报中交换truefalse应该可以解决问题。