【问题标题】:How to sort numbers in text file如何对文本文件中的数字进行排序
【发布时间】:2022-01-01 13:51:22
【问题描述】:

大家好,我有一个分数的文本文件,我想对数字进行排序,而不是文件中的文本,但我的代码只是对文本进行排序。请帮我解决这个问题。
这是我在 a.txt 中的乐谱文件:

Cow:50
Bob:60
Van:70

这是我的代码:

public class highscore {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new FileReader("src/a.txt"));
        ArrayList<String> str = new ArrayList<>();
        String line = "";
        while((line=reader.readLine())!=null){
            str.add(line);
        }
        reader.close();
        Collections.sort(str);
        FileWriter writer = new FileWriter("b.txt");
        for(String s: str){
            writer.write(s);
            writer.write("\r\n");
        }
        writer.close();
    }
}

【问题讨论】:

标签: java sorting


【解决方案1】:

对文本中的数字进行排序,也就是说你需要提取数字:

// descending
str.sort((o1, o2) -> Integer.compare(
            Integer.parseInt(o2.substring(o2.indexOf(":") + 1)),
            Integer.parseInt(o1.substring(o1.indexOf(":") + 1))));
// or ascending
str.sort(Comparator.comparingInt(o -> Integer.parseInt(o.substring(o.indexOf(":") + 1))));

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2020-05-19
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多