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依赖(一般来说这个库还是比较常用的),如果只是为了获取扩展名就引入一个依赖,就不划算了。
文章评论