Java:如何对txt文件进行排序?

我再次需要你的帮助。如何在 Java 中对 txt 文件中的记录进行排序?


这是我如何保存分数的代码


try {

    File highscore = new File("highscore.txt");

    PrintWriter output = new PrintWriter(new FileWriter(highscore, true));


    if (highscore.exists()) {

        System.out.println();

        System.out.println("High Score:");

    }


    output.println(name + " - " + totalScore);

    output.close();

} catch (IOException e) {

    System.out.println(e);

}

这是我如何显示分数的代码


try {

    FileReader fr = new FileReader("highscore.txt");

    BufferedReader br = new BufferedReader(fr);

    String s;


    while ((s = br.readLine()) != null) {

        System.out.println(s);

    }


    br.close();

} catch (IOException e) {

    System.out.println(e);

}

我目前的输出是:


Player1 100

Player2 200

Player3 50

我想把分数从高到低排序,我该怎么做?先感谢您!


我想要得到的输出是:


Player2 200

Player1 100

Player3 50


三国纷争
浏览 223回答 2
2回答

暮色呼如

我建议使用 java 排序功能,在这种情况下,我将创建一个Highscore.class包含名称和分数的对象。public class Highscore {&nbsp; &nbsp; private String name;&nbsp; &nbsp; private Integer score;&nbsp; &nbsp; public Highscore(String name, Integer score) {&nbsp; &nbsp; &nbsp; &nbsp; this.name = name;&nbsp; &nbsp; &nbsp; &nbsp; this.score = score;&nbsp; &nbsp; }&nbsp; &nbsp; // getters...&nbsp;}拥有该对象,您必须创建List<Highscore>并排序该对象...List<Highscore> highscores = new ArrayList();//add all highscores e.g. highscores.add(new Highscore(name, totalScore));highscores.sort(Comparator.comparing(Highscore::getScore));排序后,您可以将高分放入文件中。

MMTTMM

您需要将阅读循环更改为其他内容:while ((s = br.readLine()) != null) {&nbsp; &nbsp; // 1. Create a custom object from found lines and push them into a list}// 2. Sort the list// 3. Print the list您可能也想更改保存程序,但没有要求,所以我跳过它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java