Java 排序字符串比较

Java 排序字符串比较,java,Java,我是Java beginer,我必须制作一个程序,使用命令行输入字符串,然后打印输入的单词数、输入的单词数和排序的单词数。除了分拣,我什么都能做。我知道我必须使用compareTo,但我不知道如何使该方法起作用。我很想得到一些帮助 以下是我目前的代码: class Sort{ public static void main(String args[]){ int count=args.length; System.out.println("\nYou'

我是Java beginer,我必须制作一个程序,使用命令行输入字符串,然后打印输入的单词数、输入的单词数和排序的单词数。除了分拣,我什么都能做。我知道我必须使用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:");
    }
}
类排序{
公共静态void main(字符串参数[]){
int count=args.length;
System.out.println(“\n您输入了“+count+”单词,它们是:”);

对于(int i=0;i,可以使用Arrays.sort进行排序,使用Arrays.toString转换为给定数组的字符串:

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));
    }
 }

由于需要使用
compareTo
,因此可以实现
集合。排序

将所有值添加到数组中后,只需将此数组与自定义的
比较器一起提供给
集合.sort()
。但问题是
集合.sort()
不接受
字符串
数组,因此还必须使用
数组.asList(yourArray)将其转换为列表
方法

假设这是你的数组

String [] args = new String[]{"dddd","cccc","bbbb", "aaaa"};
现在,让我们使用
集合。将数组转换为列表后,对其进行排序,并为其提供
比较器

Collections.sort(Arrays.asList(args),new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
});
输出

仅供参考,如果要按相反顺序排序,请替换
返回o2.compareTo(o2)
返回o2.compareTo(o1)

您可以使用
数组#sort
还是必须自己实现一个排序算法?许多常用java机制可以很容易地为您实现这一点,其中最简单的一个luiggi刚刚暗示atI必须使用字符串方法compareTo…然后您必须实现一个排序算法。您知道任何排序算法吗?不,真的。我真的是一个初学者。.OP明确地说他需要使用
compareTo()
,而为他做可能的家庭作业对他没有任何好处。@Drew
sort
使用
comapreTo(…)
。当然,你可能是对的,但让OP自己提一下。@BartKiers问题中说:除了排序之外,我什么都可以做。我知道我必须使用compareTo,但我不知道如何使该方法工作。你认为如何为
字符串
类实现
compareTo
很可能是这样,但OP没有明确提到s/他不能使用内置排序。OP可能不知道
数组。排序(…)
,这就是他/他的意思。同样,这是猜测。让OP澄清有什么错?
for (String p : args ){
    System.out.println(p);
}
aaaa
bbbbb
cccc
dddd