我有一个正在排序的列表,该列表是从CSV文件读取的。

现在,当我对代码进行排序时,我得到:
java - Java对列表进行排序,而忽略撇号-LMLPHP

但是,如果我在Excel上对CSV文件进行排序,则会略有不同
java - Java对列表进行排序,而忽略撇号-LMLPHP

因此从技术上讲,Excel忽略了撇号的情况,但我的不是。该标准未指定在这种情况下的处理方法,但是我认为当时我的代码不正确。我将如何忽略撇号的情况并转到下一个角色?

我的代码是:

public static Comparator<Hill> compareName = new Comparator<Hill>() {
    public int compare(Hill one, Hill other) {
        return one.name.compareTo(other.name);
    }
};

public static void exercise5d() {
    List<Hill> hills = readHills();
    for (int i = 0; i < 20; i++) {
        Collections.sort(hills, Hill.compareName);
        System.out.println(hills.get(i));
    }

}

最佳答案

在比较器中

更换
return one.name.compareTo(other.name);

return one.name.replaceAll("'","").compareTo(other.name.replaceAll("'",""));

07-27 13:30