java - 对包含数字和字母的字符串列表进行排序

标签 java arrays list sorting bukkit

我正在尝试对字符串列表进行排序。这些字符串包含用户名和他们的杀戮。我想使用用户名和 - 之前的击杀数对列表进行排序。我已经阅读了 Comparator 并尝试了一些但没有任何运气。

public class Test {
    public static List<String> TOP10_Players = new ArrayList<>();
    
    public static void AddPlayers() {
        // TOP10_Players.add("[Kills]-[Username]");
        TOP10_Players.add("1-Username1");
        TOP10_Players.add("2-Username2");
        TOP10_Players.add("3-Username3");
        
        SortList();
    }
    
    public static void SortList() {
        // Code to sort list
    }
}

最佳答案

您可以使用 Comparator 来完成。使用 split("-") 将在找到“-”的位置分隔单个字符串并返回 String[]。然后在 Integer.parseInt(((String) o).split("-")[0])) 的帮助下,它将第一个拆分的字符串项转换为整数,比较器可以相应地对列表进行排序。

TOP10_Players.sort(Comparator.comparing((Object o) -> Integer.parseInt(((String) o).split("-")[0])));

输出:[1-用户名1, 3-用户名3, 5-用户名2]

对于降序:

TOP10_Players.sort(Comparator.comparing((Object o) -> Integer.parseInt(((String) o).split("-")[0])).reversed());

输出:[5-用户名2, 3-用户名3, 1-用户名1]

关于java - 对包含数字和字母的字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64770124/

相关文章:

c# - 与 List <T> C# 重复

c# - 如何制作一个看起来自然的列表?

Java 通用构建器

java - 处理异常的构造函数

java - Spring RDBMS 与 JDBCTemplate

php - 最后一个值没有出现在动态 php 数组中

无法解释此 C 代码片段的行为

java - 用 vector 填充二维数组时出现 NullPointerException

javascript - ngFor 与 JSON 对象 - Angular 2 ngmodel 视角

Python:更改嵌套列表的值