从 URL 获取文件名

新手上路,请多包涵

在 Java 中,给定 java.net.URLString 形式为 http://www.example.com/some/path/to/a/file.xml ,获取文件名的最简单方法是什么,减去扩展名?所以,在这个例子中,我正在寻找返回 "file" 的东西。

我可以想到几种方法来做到这一点,但我正在寻找易于阅读且简短的东西。

原文由 Sietse 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

与其重新发明轮子,不如使用 Apache commons-io

 import org.apache.commons.io.FilenameUtils;

public class FilenameUtilTest {

    public static void main(String[] args) throws Exception {
        URL url = new URL("http://www.example.com/some/path/to/a/file.xml?foo=bar#test");

        System.out.println(FilenameUtils.getBaseName(url.getPath())); // -> file
        System.out.println(FilenameUtils.getExtension(url.getPath())); // -> xml
        System.out.println(FilenameUtils.getName(url.getPath())); // -> file.xml
    }

}

原文由 Adrian B. 发布,翻译遵循 CC BY-SA 3.0 许可协议

String fileName = url.substring( url.lastIndexOf('/')+1, url.length() );

String fileNameWithoutExtn = fileName.substring(0, fileName.lastIndexOf('.'));

原文由 Real Red. 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题