Java根据文件名日期排序&取其最新

java 复制代码
        ArrayList<String> fileNames = new ArrayList<>();
        fileNames.add("20231001115811.log");
        fileNames.add("20231002235832.log");
        fileNames.add("20231008085853.log");
        fileNames.add("20231007145819.log");
        fileNames.add("20231009165818.log");
        fileNames.add("20221020065817.log");
        fileNames.add("20231010205814.log");
        fileNames.add("20231012035816.log");
        fileNames.add("20231019105815.log");
        fileNames.add("20231013115818.log");
        fileNames.add("20231017155813.log");

        TreeMap<Long,String> fileNameMap= new TreeMap<Long,String>();
        for (String fileName : fileNames) {
            Pattern pattern = Pattern.compile("[0-9]{14}"); // 使用正则表达式匹配14位数字
            Matcher matcher = pattern.matcher(fileName);
            if (matcher.find()) {
                String date = matcher.group();
                fileNameMap.put(Long.parseLong(date), fileName);
            }
        }
        if (!fileNameMap.isEmpty()) {
            System.out.println(fileNameMap.lastEntry().getValue());
        }
相关推荐
一路往蓝-Anbo34 分钟前
STM32单线串口通讯实战(五):RTOS架构 —— 线程安全与零拷贝设计
c语言·开发语言·stm32·单片机·嵌入式硬件·观察者模式·链表
leiming61 小时前
c++ map容器
开发语言·c++·算法
醇氧1 小时前
【Linux】 安装 Azul Zulu JDK
java·linux·运维
坚持就完事了1 小时前
JavaScript
开发语言·javascript·ecmascript
多多*1 小时前
2026年1月3日八股记录
java·开发语言·windows·tcp/ip·mybatis
杨校1 小时前
杨校老师课堂备赛C++信奥之模拟算法习题专项训练
开发语言·c++·算法
5:001 小时前
Python进阶语法
开发语言·python
张较瘦_1 小时前
Springboot3 | 核心注解实战教程
java·spring boot
太理摆烂哥1 小时前
C++之异常
java·开发语言·jvm
pe7er1 小时前
如何阅读英文文档
java·前端·后端