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());
        }
相关推荐
爱吃甜品的糯米团子6 分钟前
详解 JavaScript 内置对象与包装类型:方法、案例与实战
java·开发语言·javascript
郝学胜-神的一滴27 分钟前
Linux下,获取子进程退出值和异常终止信号
linux·服务器·开发语言·c++·程序人生
程序定小飞40 分钟前
基于springboot的学院班级回忆录的设计与实现
java·vue.js·spring boot·后端·spring
AI科技星42 分钟前
张祥前统一场论动量公式P=m(C-V)误解解答
开发语言·数据结构·人工智能·经验分享·python·线性代数·算法
攀小黑1 小时前
基于若依-内容管理动态修改,通过路由字典配置动态管理
java·vue.js·spring boot·前端框架·ruoyi
CodeByV1 小时前
【C++】继承
开发语言·c++
青云交1 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用
java·spark·lstm·可视化·java 大数据·空气质量监测·污染溯源
权泽谦2 小时前
用 Python 做一个天气预报桌面小程序(附源码 + 打包与部署指导)
开发语言·python·小程序
ftpeak2 小时前
《Rust+Slint:跨平台GUI应用》第八章 窗体
开发语言·ui·rust·slint
森语林溪2 小时前
大数据环境搭建从零开始(十七):JDK 17 安装与配置完整指南
java·大数据·开发语言·centos·vmware·软件需求·虚拟机