【发布时间】:2015-03-19 20:32:39
【问题描述】:
我应该编写一个比较方法,它基本上完成了 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;
}
我已经完成了一个 if 循环,比较了 2 个不同长度的字符串,但是,程序忽略了这一点。 我试图理解我的错误,所以请不要不解释就给我答案,因为我不会学到任何东西。 提前谢谢。
【问题讨论】:
-
您是否尝试过使用调试器?如果您使用某种 IDE,它应该带有合适的接口。尝试单步执行程序并特别注意您编写的所有条件以及它们如何影响代码。尝试比较字符串“Ala lubi kota”“Ala ma kota”。
-
为了学习目的没关系。但所有其他方式都使用 String.equals() 方法。在软件工程中有句谚语——“不要重新发明轮子”
-
我正在使用 DrJava。我不知道它是否有,但是,是的,我会这样做。