如何用Java中的第二个字按字母顺序对字符串数组进行排序

V S*_*ebi 1 java arrays sorting string

我正在处理的任务有点问题.基本上,我有一个文件,学生证和他们的名字采用以下格式:

17987贝丝

17950克拉克

17936亚伦

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

pic*_*ypg 6

你需要提供一个Comparator会查看String传递给它的s,并且他们必须了解他们正在寻找什么.您可以在几个不同的方式做到这一点,但是,如果你知道某些对字符串的内容,那么你就可以splitString基于其空间S和比较的第二个值.或者,您可以使用正则表达式来提取这些详细信息.

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]);
    }
}
Run Code Online (Sandbox Code Playgroud)