插入排序与字符串困难

时间:2014-03-13 20:11:06

标签: java string for-loop insertion-sort

尝试编写插入排序以对字符串数组进行排序..

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;等进行比较?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您无法将对象(包括String)与比较运算符(例如>)进行比较。您必须调用执行比较的方法。 StringComparable <String>,因此请替换

list[k] > currentElement

list[k].compareTo(currentElement) > 0

答案 1 :(得分:0)

没有。您无法将包括String在内的任何Object与更大或更小的运算符进行比较。

您可以使用特定于语言的排序规则来比较字符串。如果要根据字符的Unicode值比较字符串,可以使用String类的compareTo(String)方法。有关String类的信息,请参阅Java文档。