如何在不使用那些愚蠢的lastIndexOf('.')
等的情况下使用Java获取文件扩展名?
答案 0 :(得分:15)
apache Commons库有FilenameUtils.getExtension()
。
您可以查看来自here和FilenameUtils的来源。
至少查看他们的实施情况。它非常简单,它们正确处理 dir.ext / file ,并处理类似 file.tar.gz 的内容,如果要提取
答案 1 :(得分:2)
这可能是最简单的方法(另请注意,根据具体情况,它不一定正确,例如“.tar.gz”)。
你也可以split
基于.
字符的字符串并取最后一块,但这看起来同样困难。
为什么你试图避免substring
和lastIndexOf
是否有特殊原因?
答案 2 :(得分:1)
不想包含外部库?使用正则表达式:
String extension = filename.replaceAll("^.*\\.([^.]+)$", "$1");
答案 3 :(得分:0)
Files.getFileExtension("some.txt")