Java中获取URI最后一个路径段的4种方法

💡 原文中文,约2900字,阅读约需7分钟。
📝

内容提要

本文介绍了在Java中获取URI最后一个路径段的四种方法。第一种方法是使用URI类,通过调用getPath()方法获取URI的路径,然后使用split()方法将路径分割成多个段,最后取最后一个段。第二种方法是使用Path类,通过调用getName()方法获取URI的最后一段。第三种方法是使用FilenameUtils类,通过调用getName()方法获取URI的最后一段。第四种方法是使用正则表达式,通过定义一个正则表达式模式来获取URI路径的最后一段。

🔎

延伸解读

方法选择需考虑依赖与场景

四种方法各有适用场景:URI类与Path类属于JDK内置,无需额外依赖,适合大多数项目;FilenameUtils需要引入Apache Commons IO库,若项目已使用该库则较为便捷;正则表达式灵活但可读性稍差,且需注意模式匹配的边界情况。选择时需权衡依赖成本、代码简洁性与团队熟悉度。

注意路径末尾斜杠与空段处理

文章示例中的URI路径均以资源名结尾,未涉及末尾带斜杠的情况。若URI以“/”结尾,使用split("/")分割后最后一个元素可能为空字符串,而Path.getName()和FilenameUtils.getName()的行为也可能不同。实际使用时需根据业务需求判断是否要处理这种边界情况,避免获取到空段。

正则表达式方法的潜在陷阱

正则表达式方法使用“.*/(.+)”模式,其中“.*”为贪婪匹配,会匹配到最后一个斜杠之前的所有内容,因此能正确捕获最后一段。但若路径末尾有斜杠,(.+)可能无法匹配或捕获到空值,导致find()失败。此外,该模式未考虑查询参数或片段标识符,若URI包含“?query”或“#fragment”,需先通过getPath()提取纯路径,文章示例已正确使用getPath()。

❓

Q&A

在Java中如何使用URI类获取URI的最后一个路径段?

可以通过URI类的getPath()方法获取路径,然后使用split()方法分割路径,最后取数组的最后一个元素。

Path类在Java中如何提取URI的最后一段?

使用Path类的getName()方法可以获取URI的最后一段,首先需要通过getPath()方法获取路径。

FilenameUtils类如何帮助获取URI的最后一个路径段?

可以使用FilenameUtils类的getName()方法,传入URI的路径来获取最后一个路径段。

如何使用正则表达式提取URI的最后一个路径段?

可以定义一个正则表达式模式,然后使用Pattern和Matcher类来匹配路径,最后通过group(1)提取最后一个路径段。

在Java中获取URI最后一个路径段的四种方法有哪些?

四种方法包括使用URI类、Path类、FilenameUtils类和正则表达式。

使用URI类获取最后一个路径段的示例代码是什么?

示例代码为:URI uri = new URI("https://www.example.com/path/to/resource"); String path = uri.getPath(); String lastSegment = path.split("/")[path.split("/").length - 1];

🏷️

标签

➡️

继续阅读