PictSplitの副産物でファイル名と拡張子を分けるコードです。
特殊技術を使っているわけではないので自分の覚書としても書いておきます。
public class FileNameSplit { public static void main(String[] args){ // 分割するファイル名 String filename = "sample.txt"; // ファイル名格納変数 String name = ""; // 拡張子格納変数 String ext; // ファイル名分割 String[] filename_ar = filename.split("\\."); // ファイル名格納 int i; for(i = 0; i < filename_ar.length - 1; i++){ name += filename_ar[i]; } // 拡張子格納 ext = filename_ar[i]; // 出力 System.out.println("ファイル名:" + name); System.out.println("拡張子:" + ext); } }
出力は「ファイル名:sample 拡張子:txt」となります。以下解説。
ファイル名格納変数を初期化しているのはforループ内で+=を使って文字をつなげているからです。nullで初期化すると結果が「nullsample」になるのでこうなりました。
ファイル名分割で「filename.split(“\\.”)」となっているのは、splitメソッドでは正規表現を利用するのでファイル名と拡張子の「.」をそのまま使うためです。エディタでは半角で「¥¥.」と表示されています。
今回の場合ループを使用しなくても大丈夫ですが、ファイル名は拡張子前以外でもドットをつけることができるので、その場合にも対応できるようにしております。
ちなみに拡張子だけ欲しい場合は
String[] filename_ar = filename.split("\\."); String ext = filename_ar[filename_ar.length - 1];
以上の方法で取得できます。