如何在java中对字母数字字符进行排序?

如何在java中对字母数字字符进行排序?,java,Java,我想对第四季度、第七季度、第二季度、第一季度和第二季度、第四季度、第七季度进行排序 谢谢。您可以使用Collections.Sort方法和字符串比较器,也可以编写自己的比较器 样品 String [] str = new String[]{"Q4","Q7","Q2","Q1"}; List<String> list = Arrays.asList(str); Collections.sort(list, String.CASE_INSENSITIV

我想对第四季度、第七季度、第二季度、第一季度和第二季度、第四季度、第七季度进行排序


谢谢。

您可以使用Collections.Sort方法和字符串比较器,也可以编写自己的比较器

样品

String [] str = new String[]{"Q4","Q7","Q2","Q1"};
        List<String> list = Arrays.asList(str);

        Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
        System.out.println(list);
String[]str=新字符串[]{“Q4”、“Q7”、“Q2”、“Q1”};
List=Arrays.asList(str);
Collections.sort(列表、字符串、不区分大小写的顺序);
系统输出打印项次(列表);

字符串实现了可比性。根据您持有它们的方式,即使用列表或数组,您可以分别使用Collections.sort()和Arrays.sort()。

您应该实现自己的比较器,即:

public class ComparatorSO implements Comparator<String>{

    @Override
    public int compare(String o1, String o2) {
        Integer i1 = Integer.parseInt(o1.substring(1));
        Integer i2 = Integer.parseInt(o2.substring(1));
        return i1.compareTo(i2);

    }

}
公共类比较器o实现比较器{
@凌驾
公共整数比较(字符串o1、字符串o2){
整数i1=Integer.parseInt(o1.substring(1));
整数i2=整数.parseInt(o2.子字符串(1));
返回i1。比较(i2);
}
}

未经测试,并假设输入字符串的形式为Qn和n int。但问题并不十分清楚。

您的示例只需按照字符串的自然顺序排序即可。然而,你可能有“Q10”,它应该在“Q7”之后?你能举例说明如何排序吗?条目的格式是什么?是否有一个非数字后跟一个数字/多个数字?优先顺序是什么?首先是字符,然后是数字?@Vasu:你还没有说“这”是什么——一个数字还是可能是多个数字?它是多个数字,即从Q1到Q100——第一个字母然后是下一个数字。