可以使用 Java 8 的 stream API 和正则表达式来实现根据集合中对象某个字段字符串中数字进行排序。

假设有一个对象类Person,其中有一个字段age表示年龄,可以按照如下方式进行排序:

List<Person> persons = new ArrayList<>();
persons.add(new Person('Alice', '26 years old'));
persons.add(new Person('Bob', '18 years old'));
persons.add(new Person('Charlie', '35 years old'));

// 排序
List<Person> sortedPersons = persons.stream()
        .sorted(Comparator.comparingInt(p -> Integer.parseInt(p.getAge().replaceAll('\D+', ''))))
        .collect(Collectors.toList());

// 输出结果
sortedPersons.forEach(System.out::println);

其中,Comparator.comparingInt()方法可以根据指定的字段进行排序,而Integer.parseInt()replaceAll('\D+', '')方法分别用于提取字符串中的数字和去除非数字字符。

Java 集合对象字段数字排序:使用 Stream API 和正则表达式

原文地址: https://www.cveoy.top/t/topic/nBd2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录