Java获取没有子字符串的文件扩展名

时间:2012-07-22 20:15:27

标签: java file-extension

如何在不使用那些愚蠢的lastIndexOf('.')等的情况下使用Java获取文件扩展名?

4 个答案:

答案 0 :(得分:15)

apache Commons库有FilenameUtils.getExtension()

您可以查看来自hereFilenameUtils的来源。

至少查看他们的实施情况。它非常简单,它们正确处理 dir.ext / file ,并处理类似 file.tar.gz 的内容,如果要提取,则需要一个特殊情况< em> .tar.gz 而不仅仅是 .gz

答案 1 :(得分:2)

这可能是最简单的方法(另请注意,根据具体情况,它不一定正确,例如“.tar.gz”)。

你也可以split基于.字符的字符串并取最后一块,但这看起来同样困难。

为什么你试图避免substringlastIndexOf是否有特殊原因?

答案 2 :(得分:1)

不想包含外部库?使用正则表达式:

String extension = filename.replaceAll("^.*\\.([^.]+)$", "$1");

答案 3 :(得分:0)

guava

Files.getFileExtension("some.txt")