gpt4 book ai didi

java - 从 src 属性(url)中提取图像名称

转载 作者:行者123 更新时间:2023-11-30 11:13:11 25 4
gpt4 key购买 nike

我正在尝试使用 JSoup 抓取图像,但不理解我偶然发现的一段代码。

部分代码:(本例中src定义为绝对url)

private static void getImages(String src) throws IOException {

String folder = null;

//Exctract the name of the image from the src attribute
int indexname = src.lastIndexOf("/");

if (indexname == src.length()) { // Don't understand this
src = src.substring(1, indexname);
}

indexname = src.lastIndexOf("/");
String name = src.substring(indexname, src.length());

// more code
}

我不明白if 语句。更具体地说,什么时候 indexname 会等于 src 的长度?

最佳答案

不要假设您在 Internet 上找到的每个来源都是好的。

那段代码有很多问题。

  1. 确实,String.lastIndexOf 的结果是源字符串长度的唯一情况是搜索字符串为“”时。因此 if block 永远不会执行。
  2. if block 中的操作(删除字符串的第一个字符)并不是很有帮助。
  3. 在 URL 中添加斜线是完全合法的,即使是在图像名称之后。尝试将“?/”添加到 URL 中的图像名称。
  4. 完全没有图像名称也是完全合法的。那里可能有带有参数的脚本的名称,例如“http://example.com/generate-captcha.php?param1=foo&param2=bar”(不是真正的链接,只是一个示例)。
  5. 您甚至可以在域名后什么都没有。

因为没有法律规定 URL 实际上必须在最后一个斜杠后有一个文件名,或者文件名必须是实际图像的名称,所以这段代码只在部分时间有效。

关于java - 从 src 属性(url)中提取图像名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com