6

如何在不使用那些愚蠢的东西的情况下在 Java 中获得文件扩展名lastIndexOf('.')

4

4 回答 4

15

apache Commons 库有FilenameUtils.getExtension().

您可以从这里开始查看源代码和FilenameUtils

至少看看他们的实现。这很简单,它们可以正确处理dir.ext/file,并且要处理类似file.tar.gz的内容,如果要提取.tar.gz而不仅仅是.gz ,则需要特殊情况。

于 2012-07-22T20:18:49.017 回答
2

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

您也可以split基于.字符的字符串并取最后一块,但这似乎同样困难。

您试图避免and有什么特别的原因substringlastIndexOf

于 2012-07-22T20:18:41.033 回答
1

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

String extension = filename.replaceAll("^.*\\.([^.]+)$", "$1");
于 2013-11-14T18:35:58.663 回答
0

番石榴

Files.getFileExtension("some.txt")

于 2014-10-03T06:49:55.437 回答