java - 如何在 Java 中按第二个单词的字母顺序对字符串数组进行排序

标签 java arrays string sorting

我正在处理的作业有点问题。基本上,我有一个文件,其中包含学生 ID 和他们的名字,格式如下:

17987 Beth

17950 Clark

17936 Aaron

我将文件的内容放在一个数组中,我需要按名称而不是 ID 对它进行排序。如果我使用 Arrays.sort(myArray) 它会自动按 ID 排序。我很难理解比较器,所以如果你能一步一步地解释它,对我来说会更容易。 谢谢!

最佳答案

您需要提供一个 Comparator 来查看传递给它的 String,并且他们必须了解他们正在寻找什么。您可以通过几种不同的方式执行此操作,但是,如果您确定知道字符串的内容,那么您可以根据它们的空间来拆分 String比较第二个值。或者,您可以使用正则表达式来提取这些详细信息。

class SecondWordComparator implements Comparator<String>
{
    @Override
    public int compare(String s1, String s2)
    {
        String[] a1 = s1.split(" ");
        String[] a2 = s2.split(" ");

        // you should ensure that there are actually two elements here
        return a1[1].compareTo(a2[1]);
    }
}

关于java - 如何在 Java 中按第二个单词的字母顺序对字符串数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210748/

相关文章:

c# - 使用 C# 检查字符串是否包含字符串数组中的字符串

javascript - 如何制作一个函数,该函数接受两个带有返回等效值的字符串的集合? (JavaScript)

java - 将多个名称保存在字符串数组中

java - Rest、Rest Api、Web Service、RestFul Api 之间的区别

Java - 接口(interface)和方法

arrays - 如何反转pscustomobject的属性?

C++ 将对数组的引用传递给函数

c++ - 创建一个 char 类型的大数组并复制文件字符

java - 访问来自不同类的变量

java - 无法在 Spring 中初始化 bean 类