在 \t [Java] 之后的单词之后按字母顺序对 String arrayList 进行排序

Sorting String arrayList alphabetically after word that comes after \t [Java]

我在记事本中创建了一个图书库,如下所示:

    Author           | Name of the book | Availability? | Readers Code | Return Date

----------------------------------------------------------------------------
    J. K. Rowling      Harry Potter       Yes             -              -
    Mark Sullivan      The Black Book     Yes             -              -
    Margaret Atwood    Rogue              Yes             -              -

我需要按书名的字母顺序对其进行排序。 单词使用 \t 分隔。 我该怎么做?

This is the code that adds new books :
try (BufferedWriter bw = new BufferedWriter(
                        new FileWriter("C:/Users/Name/Desktop/library.txt", true))) {


                    System.out.print("Enter authors name\t");
                    name = sc.nextLine();
                    name = sc.nextLine();
                    author[l] = name;

                    System.out.print("Enter books name\t");
                    name = sc.nextLine();
                    bookname[l] = name;

                    vaiBib[l] = "Yes";
                    BilNr[l] = "-";
                    AtgDat[l] = "-";

                    l++;

                    if ((author[l- 1] != null) && (bookname[l- 1] != null)) {
                        content = bookname[l- 1] + "\t\t" + author[l- 1] + "\t\t" + vaiBib[l- 1]
                                + "\t\t\t" + BilNr[l- 1] + "\t\t" + AtgDat[l- 1];
                        bw.write(content);
                        bw.newLine();

                    }

                } catch (IOException e) {
                    e.printStackTrace();
                }

然后使用此代码,我从记事本中的行创建链接列表:

BufferedReader br = new BufferedReader(new FileReader("C:/Users/Name/Desktop/library.txt"));
    ArrayList<String> Line2= new ArrayList<>();
                    while ((line = br.readLine()) != null) {
                        Line2.add(line);
                    }

如果可以使用Java 8:

Line2.sort(Comparator.comparing(s -> s.substring(s.indexOf('\t') + 1)));

在早期的 Java 版本中,您需要编写 Comparator class,您可以在 Internet 上找到大量示例和教程。通过采用 s.substring(s.indexOf('\t') + 1)) 来比较第一个制表符之后的字符串部分的基本思想仍然有效,您只需要为要比较的两个字符串中的每一个都这样做。