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

如何提取URL字符串标签、检查深度并获取父路径与祖父路径?

处理URL层级、父路径与祖父路径的实现方案

核心思路

  1. 以/为分隔符拆分URL字符串,得到各路径段的数组
  2. 层级深度直接等于数组的长度
  3. 父路径:移除数组最后一个元素后重新拼接
  4. 祖父路径:移除数组最后两个元素后重新拼接(需处理层级不足的边界情况)

Java代码实现

public class UrlPathProcessor {
    public static void main(String[] args) {
        String url = "ricsglobal:content/category/news-and-insight/type/wbef";
        String[] pathSegments = url.split("/");
        
        // 获取层级深度
        int depth = pathSegments.length;
        System.out.println("URL层级深度: " + depth);
        
        // 获取父路径
        String parentPath = buildPath(pathSegments, pathSegments.length - 1);
        System.out.println("父路径: " + parentPath);
        
        // 获取祖父路径
        String grandparentPath = buildPath(pathSegments, pathSegments.length - 2);
        System.out.println("祖父路径: " + grandparentPath);
    }
    
    // 通用路径拼接方法,截取前n个路径段
    private static String buildPath(String[] segments, int endIndex) {
        if (endIndex <= 0) {
            return segments.length == 0 ? "" : segments[0];
        }
        StringBuilder pathBuilder = new StringBuilder();
        for (int i = 0; i < endIndex; i++) {
            if (i != 0) {
                pathBuilder.append("/");
            }
            pathBuilder.append(segments[i]);
        }
        return pathBuilder.toString();
    }
}

代码说明

  • 拆分URL后,示例的路径段数组为["ricsglobal:content", "category", "news-and-insight", "type", "wbef"],层级深度为5
  • 父路径截取前4个段,拼接结果为ricsglobal:content/category/news-and-insight/type
  • 祖父路径截取前3个段,拼接结果为ricsglobal:content/category/news-and-insight,符合预期
  • 通用buildPath方法统一处理路径拼接,同时兼容层级不足的情况(比如URL只有2段时,祖父路径直接返回原URL)

内容的提问来源于stack exchange,提问作者Niraj Kumar Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:22:01