我是Java初学者,我必须编写一个程序,使用命令行输入一个字符串,然后打印输入的单词数、输入的单词和排序的单词。除了排序之外,我什么都能做。我知道我必须使用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:");
}
}
最佳答案
由于您需要使用compareTo
,因此您可以实现Collections.sort
。
将所有值添加到数组中后,只需将此数组与自定义的Comparator
一起提供给Collections.sort()
。但问题是 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
仅供引用,如果您想按相反顺序排序,请替换
返回 o1.compareTo(o2)
和 返回 o2.compareTo(o1)
关于java - 排序字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28308699/