前言:
开发中,我们会遇到:接口返回给我一个网址链接,而我需要取网址中,后面部分的文件名,举例,完整网址为:“https://xxxxxxxxxxxxxx.com/Download/casetest/1684122146934292.png”,而我需要的是:/Download/case/test/1684122146934292.png,考虑到上面网址中,文件名前面部分的网址可能会出现更改,那我们应该如何截取才能更灵活应对网址可能会变换的问题?
要从给定的网址中提取文件名后面的部分,可以使用 Java 中的 URL 类来解析网址,并获取路径部分。然后,你可以根据路径部分进行进一步的处理。
以下是一个示例代码:
import java.net.URL;
// 假设网址为 urlStr
String urlStr = "https://xxxxxxxxxxxxxx.com/Download/casetest/1684122146934292.png";
try {
// 创建 URL 对象
URL url = new URL(urlStr);
// 获取路径部分
String path = url.getPath();
// 输出路径部分
System.out.println("路径部分: " + path);
// 提取文件名部分
String filename = path.substring(path.lastIndexOf('/') + 1);
// 输出文件名部分
System.out.println("文件名: " + filename);
} catch (Exception e) {
e.printStackTrace();
}
在上述示例中,我们使用了 Java 的 URL 类来解析网址。首先,创建一个 URL 对象,并通过 getPath()
方法获取路径部分。然后,使用 lastIndexOf('/')
方法找到最后一个斜杠的位置,再使用 substring()
方法从该位置开始提取文件名部分。
这种方法可以灵活处理不同网址的变化,因为它只依赖于路径部分,而不依赖于网址的前缀或其它部分。你可以根据实际需要,对提取的文件名进行进一步处理或使用。
根据上面代码,我们得到的获取路径部分path就是我所需要的,连接后面的/Download/casetest/1684122146934292.png部分。仅此,完毕。