java - 排序字符串比较

标签 java

我是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/

相关文章:

java - 玩框架 URL validator ?

java - 具有空值的字符串构造函数

java - 尝试通过将 "=sxx"附加到 URL 来从应用程序引擎获取调整大小的图像

java - EmailSender 读取响应异常

java - Jersey 与 liferay、Servlet 到 portlet 转换

java - 来自现有 jar 的 Eclipse 插件

java - 如何在 Swing 应用程序中设计用户首选项模块?

java - Eclipse 插件中的 Phantom 项目

java - 通过分割或使用正则表达式将 ID 与另一个字符串进行匹配

java - Junit 测试填充数组并计算无法填充的项目的方法