如何在不使用那些愚蠢的东西的情况下在 Java 中获得文件扩展名lastIndexOf('.')
?
问问题
19979 次
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有什么特别的原因吗?substring
lastIndexOf
于 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 回答