6

lastIndexOf('.')そのばかげたものなどを使用せずに、Javaでファイル拡張子を取得するにはどうすればよいですか?

4

4 に答える 4

15

Apache Commons ライブラリにはFilenameUtils.getExtension().

ここから始まるソースとFilenameUtilsを調べることができます。

少なくともそれらの実装を見てください。dir.ext/fileを正しく処理し、 file.tar.gz のようなものを処理するには、単に.gzではなく.tar.gzを抽出する場合に特別なケースが必要になります。

于 2012-07-22T20:18:49.017 に答える
2

これがおそらく最も簡単な方法です (コンテキストによっては、必ずしも正しいとは限らないことにも注意してください。たとえば、「.tar.gz」)。

split文字に基づいて文字列を作成し、最後のピースを取得することもできますが.、それは同じように難しいようです.

と を避けようとしている特定の理由はありますか?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 に答える