为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

三国纷争 2022-06-15 09:49:32
我再次需要你的帮助。如何在 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 100Player2 200Player3 50我想把分数从高到低排序,我该怎么做?先感谢您!我想要得到的输出是:Player2 200Player1 100Player3 50
查看完整描述

2 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

我建议使用 java 排序功能,在这种情况下,我将创建一个Highscore.class包含名称和分数的对象。


public class Highscore {

    private String name;

    private Integer score;


    public Highscore(String name, Integer score) {

        this.name = name;

        this.score = score;

    }


    // getters...

 }

拥有该对象,您必须创建List<Highscore>并排序该对象...


List<Highscore> highscores = new ArrayList();

//add all highscores e.g. highscores.add(new Highscore(name, totalScore));


highscores.sort(Comparator.comparing(Highscore::getScore));

排序后,您可以将高分放入文件中。


查看完整回答
反对 回复 2022-06-15
?
MMTTMM

TA贡献1869条经验 获得超4个赞

您需要将阅读循环更改为其他内容:


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

    // 1. Create a custom object from found lines and push them into a list

}

// 2. Sort the list

// 3. Print the list

您可能也想更改保存程序,但没有要求,所以我跳过它。


查看完整回答
反对 回复 2022-06-15
  • 2 回答
  • 0 关注
  • 222 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号