使用扩展名表单URL提取文件名

时间:2014-05-03 04:57:10

标签: java

假设我有以下字符串

http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png

从中提取b84.png的最佳方法是什么?我的程序将获取图像URL列表,我想从每个URL中提取文件名及其扩展名。

6 个答案:

答案 0 :(得分:1)

我建议使用URI创建File,如下所示:

String url = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png";
URI uri = URI.create(url);
File f = new File(uri.getPath());

uri.getPath()仅返回网址的路径部分(即删除方案,主机等)并生成:

/photos/images/original/000/748/132/b84.png

然后,您可以使用创建的File对象从完整路径中提取文件名:

String fileName = f.getName();
System.out.println(fileName);

print语句的输出将是: b84.png

但是,如果你完全不关心url(s)的输入格式,那么子字符串的答案就更简洁了。我想我会提供另一种选择。希望它有所帮助。

答案 1 :(得分:0)

尝试,

String url = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png";
String fileName = url.subString(url.lastIndexOf("/")+1);

答案 2 :(得分:0)

String[] urlArray=yourUrlString.split("/");
String fileName=urlArray[urlArray.length-1];

答案 3 :(得分:0)

我认为,字符串lastIndexOf方法是提取文件名的最佳方法

String str = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png";
String result = str.substring(str.lastIndexOf('/')+1,str.length());

答案 4 :(得分:0)

你可以试试这个 -

 String url = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png"
 url = url.substring(url.lastIndexOf("."));

如果您不使用png而不是.png,只需将最后一行更改为 -

 url = url.substring(url.lastIndexOf(".") + 1);

答案 5 :(得分:0)

适合您的方法

public String Name(String url){
        url=url.replace('\\', '/');
        return  url.substring(url.lastIndexOf('/')+1,url.length());
    }

此方法返回任何目录的任何文件名... whitout错误,因为转换" \"到" /"所以永远不会有不同目录的问题