排序字符串CompareTo

时间:2015-02-03 21:03:51

标签: java

我是Java beginer,我必须创建一个程序,使用命令行输入String,然后打印输入的单词数,输入的单词和排序的单词。除了排序,我可以做任何事情。我知道我必须使用compareTo,但我不知道如何使该方法工作。很想得到一些帮助!

到目前为止,这是我的代码:

class Sort{
    public static void main(String args[]){
         int count=args.length;
         System.out.println("\nYou've enetered "+count+" word and they are:");
         for(int i=0;i<count;i++)
         {System.out.print(args[i]+" ");}
         System.out.println("\nThe sorted words are:");
    }
}

2 个答案:

答案 0 :(得分:1)

由于您需要使用compareTo,因此您可以实施Collections.sort

在您的数组中添加所有值后,只需将此数组与自定义Collections.sort()一起提供给Comparator。但问题是Collections.sort()不接受String数组,因此您还必须使用Arrays.asList(yourArray)方法将其转换为列表。

假设这是你的数组,

String [] args = new String[]{"dddd","cccc","bbbb", "aaaa"};

现在让我们在将数组转换为列表后使用Collections.sort并为其提供Comparator

Collections.sort(Arrays.asList(args),new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
});
简单,不是吗?

如果您想立即打印已排序的值,

for (String p : args ){
    System.out.println(p);
}

<强> 输出

aaaa
bbbbb
cccc
dddd

仅供参考,如果您想按相反顺序排序,请更换 return o1.compareTo(o2)return o2.compareTo(o1)

。{

答案 1 :(得分:0)

您可以使用Arrays.sort进行排序,使用Arrays.toString将String转换为String给定的数组:

class Sort{
    public static void main(String args[]){
        System.out.printf("\nYou've enetered %d words and they are:", args.length);
        System.out.println(Arrays.toString(args));

        Arrays.sort(args);
        System.out.println("\nThe sorted words are:");
        System.out.println(Arrays.toString(args));
    }
 }