この投稿では、Javaで拡張子なしでファイル名を取得する方法について説明します。ソリューションは、最後のドットの前にファイル名を返す必要があります。

1.使用する String.substring() 方法

アイデアは、 lastIndexOf() ドットの最後の出現のインデックスを取得するメソッド(.)指定されたファイル名で。次に、を使用して拡張子なしでファイル名を抽出できます substring() 以下に示すように、メソッド:

コードをダウンロード

 
上記のコードは java.lang.StringIndexOutOfBoundsException ファイル名に拡張子がない場合。この場合は、の戻り値を確認することで対処できます lastIndexOf() を返すメソッド -1 ドットが発生しない場合。これを以下に示します。

ダウンロード  コードを実行する

2. ApacheCommonsIOの使用

別のオプションは、 FilenameUtils ApacheCommonsIOライブラリによって提供されるクラス。それは提供します removeExtension() ファイル名から拡張子を削除するメソッド。 fileNameにパスが含まれている場合、パスは削除されません。

コードをダウンロード

 
または、 getBaseName() からの方法 FilenameUtils ファイル名(存在する場合)から拡張子とともにパスを追加で削除するクラス。それはに似ています basename Unixコマンド。

コードをダウンロード

3.Guavaの使用

プロジェクトでApacheCommonsを介してGuavaライブラリを使用する場合は、 getNameWithoutExtension() からの方法 Files クラス。拡張子やパスを除いたファイル名を返します basename Unixコマンド。

コードをダウンロード

4.正規表現の使用

別のオプションは、正規表現を使用することです \.\w+$ とともに replaceAll() 最後のドットとそれに続くすべての文字を削除するメソッド。

ダウンロード  コードを実行する

これで、Javaで拡張子なしのファイル名を取得できます。