Java 我的代码无法正确比较不同长度的字符串

Java 我的代码无法正确比较不同长度的字符串,java,string,compare,Java,String,Compare,我应该写一个compare方法,它基本上实现了compareTo方法的功能。我已经编写了代码,但它不会比较不同长度的字符串。 这是我的代码: public static int compare(String a, String b) { int result = 0; a = a.toLowerCase(); b = b.toLowerCase(); //program assumes strings are equal for (int i = 0;

我应该写一个compare方法,它基本上实现了compareTo方法的功能。我已经编写了代码,但它不会比较不同长度的字符串。 这是我的代码:

public static int compare(String a, String b)
{
    int result = 0;
    a = a.toLowerCase();
    b = b.toLowerCase();
    //program assumes strings are equal

    for (int i = 0; i<a.length() && i<a.length(); i++) {
        int c = a.charAt(i);
        int d = b.charAt(i);

        if (c < d){
            result = -1;
            break;
        }
        if (a.length() > b.length()) {
            result = -1;
            break;
        }
        if (a.length() < b.length()) {
            result = +1;
            break;
        }

        if (c > d) {
            result = 1;
            break;
        }
    }
    return result;
}
公共静态整数比较(字符串a、字符串b)
{
int结果=0;
a=a.toLowerCase();
b=b.toLowerCase();
//程序假定字符串相等
对于(int i=0;i d){
结果=1;
打破
}
}
返回结果;
}
我已经做了一个if循环,比较了两个不同长度的字符串,但是程序忽略了这一点。 我试图理解我的错误,所以请不要不解释就给我答案,因为我什么也学不到。
提前谢谢。

首先,在逐字符比较时,您要确保
i
小于
a
的长度和
b
的长度。现在,您正在将
i
a'
s长度进行两次比较

尝试:


你试过使用调试器吗?如果您使用的是某种IDE,那么它应该有一个合适的接口。尝试一步一步地完成程序,并特别注意您编写的所有条件以及它们如何影响代码。试着比较字符串“Ala lubi kota”和“Ala ma kota”。出于学习目的,这是可以的。但所有其他方法都使用String.equals()方法。在软件工程中有一句谚语:“不要重新发明轮子”,我正在使用DrJava。我不知道它是否有一个,但是,是的,我会的。很好!!谢谢你,伙计!!我完全理解你所说的,当然,在你的帮助下,我修正了我的代码:)
//                                *
for (int i = 0; i<a.length() && i<b.length(); i++){
// After the for loop ends:
if(a.length() > b.length()){
     result = 1;
     break;   }
if(a.length() < b.length()){
     result = -1;
     break;