Java 通过使用比较器增加长度来对字符串数组进行排序

标签 java arrays string sorting comparator

希望得到一些建议,我创建了一个月份数组,我必须使用比较器按长度顺序对它们进行排序。我创建了两个类:数组列表和比较器,但它没有以正确的顺序返回它们,因为五月应该是显示的第一个月,我不知道我哪里出了问题,如果有人能告诉我,请在下面发布我的代码我已经做了什么以及将来如何避免!非常感谢!!

import java.util.*;

public class Q3 implements Comparator.java {
//creating array of months to be sorted in order of length
public int compare(String x, String y) {
    if (x == null)
        return y==null ? 0 : -1;
    else if (y == null)
        return +1;
    else {
        int lenx = x.length();
        int leny = y.length();
        if (lenx == leny)
            return x.compareTo(y);
        else
            return lenx > leny ? -1 : +1;
    }
}

    public static void main(String[] args) {
    String[] data = {
        "January",
        "February",
        "March",
        "April",
        "May",
        "June",

    };
    Arrays.sort(data);
    System.out.println(Arrays.toString(data));
}

}

最佳答案

您应该通过比较器。

Arrays.sort(data, new Q3());

关于Java 通过使用比较器增加长度来对字符串数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100657/

相关文章:

java - 如何将这个增强循环转换为 for 循环

c++ - 使用 std::cin 可以将多长的字符串读入字符串对象?

java - Spring Batch 一次处理多个项目

java - Vaadin Grid DateRenderer 不适用

java - 创建武器类别和战斗类别

python - 使用 nditer 进行 Numpy 数组比较

字符串中的 Android 返回行 (\n)

python - 你将如何从字符串列表中创建一个逗号分隔的字符串?

java - 从 MQ 获取字符串形式的关联 ID

java - 从文本文件读取和分析数据 - 大问题