Java 排序字符串比较
我是Java beginer,我必须制作一个程序,使用命令行输入字符串,然后打印输入的单词数、输入的单词数和排序的单词数。除了分拣,我什么都能做。我知道我必须使用compareTo,但我不知道如何使该方法起作用。我很想得到一些帮助 以下是我目前的代码:Java 排序字符串比较,java,Java,我是Java beginer,我必须制作一个程序,使用命令行输入字符串,然后打印输入的单词数、输入的单词数和排序的单词数。除了分拣,我什么都能做。我知道我必须使用compareTo,但我不知道如何使该方法起作用。我很想得到一些帮助 以下是我目前的代码: class Sort{ public static void main(String args[]){ int count=args.length; System.out.println("\nYou'
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()
,而为他做可能的家庭作业对他没有任何好处。@Drewsort
使用comapreTo(…)
。当然,你可能是对的,但让OP自己提一下。@BartKiers问题中说:除了排序之外,我什么都可以做。我知道我必须使用compareTo,但我不知道如何使该方法工作。你认为如何为字符串
类实现compareTo
很可能是这样,但OP没有明确提到s/他不能使用内置排序。OP可能不知道数组。排序(…)
,这就是他/他的意思。同样,这是猜测。让OP澄清有什么错?
for (String p : args ){
System.out.println(p);
}
aaaa
bbbbb
cccc
dddd