Java 截取文件后缀名的方法

目录

  • Java截取文件后缀名的方法
    • 一 . String 类
    • 二 . 工具类
      • cn.hutool.core.io.file.FileNameUtil
      • org.apache.commons.io.FilenameUtils
      • org.springframework.util.StringUtils
    • 三 . 正则表达式

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));

Java 截取文件后缀名的方法_第1张图片
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));

在这里插入图片描述

三 . 正则表达式

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

你可能感兴趣的:(案例,java)