尝试编写插入排序以对字符串数组进行排序..
public static void insertionSort(String[] list)
{
for (int i = 1; i <list.length; i++)
{
String currentElement = list[i];
int k;
for (k=i-1; k >= 0 && list[k] > currentElement; k--) //error here
{
list[k+1]=list[k];
}
list[k+1] = currentElement;
}
}
我收到错误操作员&gt;对于参数类型是未定义的,但我认为我在课堂上学到了你可以将字符串与&gt;,&lt;等进行比较?我该如何解决这个问题?
答案 0 :(得分:4)
您无法将对象(包括String
)与比较运算符(例如>
)进行比较。您必须调用执行比较的方法。 String
为Comparable
<String>
,因此请替换
list[k] > currentElement
与
list[k].compareTo(currentElement) > 0
答案 1 :(得分:0)
没有。您无法将包括String在内的任何Object与更大或更小的运算符进行比较。
您可以使用特定于语言的排序规则来比较字符串。如果要根据字符的Unicode值比较字符串,可以使用String类的compareTo(String)
方法。有关String类的信息,请参阅Java文档。