我是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:");
}
}
答案 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));
}
}