java删除文件的扩展名 11 月,3 周 Questions & Answers 39404 给定如下文件名: package.zip image.jpeg video.avi etc 如果存在,我想删除扩展名。我如何用Java制作这个?谢谢
# 4 楼答案 下面是一个稍微更健壮的版本: public static String stripExtension(final String s) { return s != null && s.lastIndexOf(".") > 0 ? s.substring(0, s.lastIndexOf(".")) : s; } 优雅地处理null,在这种情况下,没有任何东西看起来像扩展名,并且不会干扰以.开头的文件,这也会处理.kitty.jpg问题 这将处理受控环境中的大多数一般情况,如果后缀实际上不是扩展,只是一些.分隔的东西,那么您需要添加一些检查,以查看尾随部分是否确实是您识别的扩展
# 5 楼答案 String name = filename.lastIndexOf('.') > filename.lastIndexOf(File.separatorChar) ? filename.substring(0, filename.lastIndexOf('.')) : filename; 比较检查文件名本身是否包含.,否则返回的字符串将保持不变
# 6 楼答案 差不多 if (name.indexOf(".") > 0) name = name.substring(0, name.lastIndexOf(".")); 索引检查可避免将诸如“.profile”之类的隐藏文件转换为“”,而lastIndexOf()会处理诸如cute.kitty.jpg之类的名称
# 1 楼答案
# 2 楼答案
使用Apache Commons IO、^{}
或者^{} ,如果您也需要路径
# 3 楼答案
在调用
substring()
之前,请检查文件名是否有.
# 4 楼答案
下面是一个稍微更健壮的版本:
优雅地处理
null
,在这种情况下,没有任何东西看起来像扩展名,并且不会干扰以.
开头的文件,这也会处理.kitty.jpg
问题这将处理受控环境中的大多数一般情况,如果后缀实际上不是扩展,只是一些
.
分隔的东西,那么您需要添加一些检查,以查看尾随部分是否确实是您识别的扩展# 5 楼答案
比较检查文件名本身是否包含
.
,否则返回的字符串将保持不变# 6 楼答案
差不多
索引检查可避免将诸如“
.profile
”之类的隐藏文件转换为“”,而lastIndexOf()
会处理诸如cute.kitty.jpg
之类的名称