有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java删除文件的扩展名

给定如下文件名:

 package.zip    image.jpeg   video.avi etc

如果存在,我想删除扩展名。我如何用Java制作这个?谢谢


共 (6) 个答案

  1. # 1 楼答案

    myString = myString.replaceAll("\\.\\w+", "");
    
  2. # 3 楼答案

    String result = filename.substring(0, filename.lastIndexOf("."))
    

    在调用substring()之前,请检查文件名是否有.

  3. # 4 楼答案

    下面是一个稍微更健壮的版本:

    public static String stripExtension(final String s)
    {
        return s != null && s.lastIndexOf(".") > 0 ? s.substring(0, s.lastIndexOf(".")) : s;
    }
    

    优雅地处理null,在这种情况下,没有任何东西看起来像扩展名,并且不会干扰以.开头的文件,这也会处理.kitty.jpg问题

    这将处理受控环境中的大多数一般情况,如果后缀实际上不是扩展,只是一些.分隔的东西,那么您需要添加一些检查,以查看尾随部分是否确实是您识别的扩展

  4. # 5 楼答案

    String name = filename.lastIndexOf('.') > filename.lastIndexOf(File.separatorChar) ?
         filename.substring(0, filename.lastIndexOf('.'))
       : filename;
    

    比较检查文件名本身是否包含.,否则返回的字符串将保持不变

  5. # 6 楼答案

    差不多

    if (name.indexOf(".") > 0)
        name = name.substring(0, name.lastIndexOf("."));
    

    索引检查可避免将诸如“.profile”之类的隐藏文件转换为“”,而lastIndexOf()会处理诸如cute.kitty.jpg之类的名称