You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dart中使用substring从URL链接中提取目标文件名

正确实现方案

核心逻辑分两步处理:

  • 先提取URL中最后一个/后的所有字符,得到包含查询参数的后缀片段
  • 再把后缀片段中第一个?前的内容截取出来,即为目标文件名

基础实现方案

void main() {
  // 链接字符串
  String s = "http://www.exampleSite.com/files/146/26189-abstract-color-background.jpg?666ff";
  // 取最后一个/之后的内容
  String temp = s.substring(s.lastIndexOf("/") + 1);
  // 查找?的位置,存在就截取到?之前,不存在就取全部内容(兼容无查询参数的场景)
  int queryIndex = temp.indexOf("?");
  String fileName = queryIndex > -1 ? temp.substring(0, queryIndex) : temp;
  print(fileName); // 输出:26189-abstract-color-background.jpg
}

更稳妥的原生解析方案

直接调用Dart自带的Uri类解析,自动适配路径带特殊字符、多查询参数、带锚点等复杂场景,兼容性更强:

void main() {
  String s = "http://www.exampleSite.com/files/146/26189-abstract-color-background.jpg?666ff";
  Uri uri = Uri.parse(s);
  String fileName = uri.pathSegments.last;
  print(fileName); // 输出:26189-abstract-color-background.jpg
}

内容的提问来源于stack exchange,提问作者Deepjyoti Baishya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:36:03