Java 截取文件后缀名的方法

文章介绍了在Java中截取文件后缀名的几种方法,包括使用String类的内置方法,Hutool、ApacheCommonsIO和SpringUtil工具类,以及正则表达式。对于不规范的文件名,文章提到了处理方式和避免异常的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java截取文件后缀名的方法

以下方法都是笔者用过以及踩过坑的,欢迎补充

一 . String 类

这个是测试的字符串:
String data = “测试文件.doc.exe”;

System.out.println("方法1 结果: "+ data.substring(data.lastIndexOf(".")));
System.out.println("方法2 结果: "+ data.split("\\.")[data.split("\\.").length-1]);

结果:

tips: 有时有可能接收到不规范的文件名,比如:

String data=“测试文件”;

此时,方法1就不适用了会报错 java.lang.StringIndexOutOfBoundsException: String index out of range: -1

System.out.println("方法1改进 结果: "+ data.substring(data.lastIndexOf(".")+1));

在这里插入图片描述

二 . 工具类

cn.hutool.core.io.file.FileNameUtil

使用这个需要引入依赖,笔者因为还用到了其他的方法所以引入了所有的

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.4.3</version>
</dependency>

示例

System.out.println("方法3-1 结果: "+ FileNameUtil.getSuffix(data));
System.out.println("方法3-2 结果: "+ FileNameUtil.extName(data));

在这里插入图片描述
hutool工具类非常丰富
上方面还可以接收 File 参数

System.out.println("方法3-3 结果: "+ FileNameUtil.getSuffix(new File(data)));
System.out.println("方法3-4 结果: "+ FileNameUtil.extName(new File(data)));

结果和上面一样

org.apache.commons.io.FilenameUtils

这个需要使用 apache的依赖

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

示例

System.out.println("方法4 结果: "+ FilenameUtils.getExtension(data));

在这里插入图片描述

org.springframework.util.StringUtils

System.out.println("方法5 结果: "+ StringUtils.getFilenameExtension(data));

在这里插入图片描述

三 . 正则表达式

正则一般需要根据自己的业务来设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值