拡張子

Javaでファイルパスから拡張子取得する方法で、cのsplitpathとか、.NET系のPathクラスに相当するのがよく分からなかったので
検索したらびびった
ほぼ間違っている


大体これ

int ext = path.lastIndexOf('.');
path.substring(ext + 1);


違いはまぁせいぜいextが-1のチェックがあるかないかと、ファイル名を返す場合はextより前側にするの
ほぼ正しい答えがでてこない
最後のディレクトリセパレータより後ろのおけつのピリオド以降が正しいにきまっとるだろ、アホ
「/etc/init.d/httpd」の拡張子は「d/httpd」やとでも言うつもりか


ざっと検索した間違えているサンプル
http://chat-messenger.net/blog-entry-39.html サンプルはフルパス想定しているみたいなのに間違い、恥ずかしい
http://www7a.biglobe.ne.jp/~java-master/samples/file/RemoveFileExtension.html 呼び出し側がgetNameしないとバグる
http://pentan.info/java/sample/get_extension.html 呼び出し側がgetNameしないとバグる
http://www.ra13.org/java/Extension.html 拡張子無しの場合ファイル名を返してしまう、おいおい
http://vacaposi.blogspot.jp/2011/12/fairu.html URLの「fairu」がほほえましい
ほかにもざくざく


ちゃんと出来てたの
http://d.hatena.ne.jp/a-san/20100808/p1
http://stackoverflow.com/questions/4431911/java-split-the-path Fileクラスをextendするとか強引にもほどがあるような