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

Java 使用扩展名表单URL提取文件名,java,Java,假设我有以下字符串 http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png 从中提取b84.png的最佳方法是什么?我的程序将获得一个图像URL列表,我想从每个URL中提取文件名及其扩展名。试试看 String url = "http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png"; String fileName = url.subString(

假设我有以下字符串

http://i2.kym-cdn.com/photos/images/original/000/748/132/b84.png
从中提取b84.png的最佳方法是什么?我的程序将获得一个图像URL列表,我想从每个URL中提取文件名及其扩展名。

试试看

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

我认为,stringlastindexof方法是提取文件名的最佳方法

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

 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);
我建议使用创建一个
文件
,如下所示:

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()
仅返回url的路径部分(即删除方案、主机等),并生成以下内容:

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

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

String fileName = f.getName();
System.out.println(fileName);
打印语句的输出将是:
b84.png


但是,如果您根本不关心url的输入格式,那么子字符串的答案会更简洁。我想我会提供一个替代方案。希望对你有所帮助。

这个方法非常适合你

public String Name(String url){
        url=url.replace('\\', '/');
        return  url.substring(url.lastIndexOf('/')+1,url.length());
    }
此方法返回任何目录的任何文件名…省略错误,因为将“\”转换为“/”,因此不会出现不同目录的问题

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