假设我有以下字符串
http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png
从中提取b84.png的最佳方法是什么?我的程序将获取图像URL列表,我想从每个URL中提取文件名及其扩展名。
答案 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错误,因为转换" \"到" /"所以永远不会有不同目录的问题