Java中截取文件名的后缀名有几种方式,整理如下:
使用String的lastIndexOf(".") 查找最后一个.的位置,然后截取
/**
* 获取文件名的扩展名
* @param fileName
* @return 例如test.jpg 返回的扩展名是jpg
*/
private static String getExtension(String fileName) {
String extension = "";
int i = fileName.lastIndexOf('.');
if (i > 0) {
extension = fileName.substring(i + 1);
}
return extension;
}
使用正则的replaceAll
/**
* 获取文件名的扩展名
* @param fileName
* @return 例如test.jpg 返回的扩展名是jpg
*/
private static String getExtension(String fileName) {
return fileName.replaceAll("^.*\\.(.*)$", "$1");
}
使用正则表达式的Pattern/Matcher
/**
* 获取文件名的扩展名
* @param fileName
* @return 例如test.jpg 返回的扩展名是jpg
*/
private static String getExtension(String fileName) {
String extension = "";
Pattern pattern = Pattern.compile("(.*)\\.(.*)");
Matcher matcher = pattern.matcher(fileName);
if (matcher.find()) {
extension = matcher.group(2);
}
return extension;
}
利用apache commons-io 的工具方法
引入pom.xml 依赖:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
使用方式:
String fileName = "test.jpg"; System.out.println(org.apache.commons.io.FilenameUtils.getExtension(fileName)); // 打印出jpg
这种方式适合于项目中已经使用了common-io依赖(一般来说这个库还是比较常用的),如果只是为了获取扩展名就引入一个依赖,就不划算了。
文章评论