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());
        }
相关推荐
胎粉仔几秒前
Objective-c 初阶——异常处理(try-catch)
开发语言·ios·objective-c
Monkey-旭8 分钟前
Android JNI 语法全解析:从基础到实战
android·java·c++·c·jni·native
小徐不徐说9 分钟前
RTSP协议详解与C++实现实例
开发语言·c++·qt·通信·rtsp
魑魅魍魉都是鬼28 分钟前
随缘玩 一: 代理模式
android·java·代理模式
流星白龙31 分钟前
【C++算法】75.优先级队列_数据流中的第 K 大元素
开发语言·c++·算法
Monkey的自我迭代31 分钟前
python线性回归:从原理到实战应用
开发语言·python·机器学习
德育处主任Pro41 分钟前
p5.js 三角形triangle的用法
开发语言·javascript·ecmascript
你我约定有三43 分钟前
分布式微服务--RPC:原理、使用方式、与 HTTP/REST 的区别与选择
java·开发语言·分布式·后端·微服务·rpc
孞㐑¥1 小时前
Linux之网络部分-应用层协议 HTTP
linux·开发语言·c++·经验分享·笔记
loop lee1 小时前
【JVM】常见的 Java 垃圾回收算法以及常见的垃圾回收器介绍及选型
java·jvm·算法