Java 我的代码无法正确比较不同长度的字符串
我应该写一个compare方法,它基本上实现了compareTo方法的功能。我已经编写了代码,但它不会比较不同长度的字符串。 这是我的代码: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;
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;