【问题标题】:Remove a namespace from an RDF resource从 RDF 资源中删除名称空间
【发布时间】:2012-11-16 15:50:25
【问题描述】:

我正在开发一个 Java 项目,我在该项目中生成 URI(统一资源标识符)作为输出。 URI 的一个示例是:www.myexample.com/rgd/543/mary。

我需要提取这些 URI 的最后一部分,它位于前一个 URI 中。

我需要一个可扩展的解决方案,因为我可能有不同形式的 URI,但我总是需要获取“/”之后的最后一部分。

例如,我可以: http://software.org/trg/poo/945/steve 或者 http://www.amazon.com/rggf/0956/dfgh/rgf/kk/adam

我需要分别从之前的 URI 中提取 steve 和 adam。

我知道正则表达式可能有效,但在正则表达式方面没有太多经验。 提前谢谢了。

【问题讨论】:

    标签: java regex uri


    【解决方案1】:

    您可以在代表 URI 的字符串上使用 substringlastIndexOf 方法来代替正则表达式,例如

    String[] data = { "http://software.org/trg/poo/945/steve",
            " http://www.amazon.com/rggf/0956/dfgh/rgf/kk/adam" };
    for (String s:data)
        System.out.println(s.substring(s.lastIndexOf('/')+1));
    
    //"http://software.org/trg/poo/945/steve
    //                                ^
    //                                lastIndexOf(`/`);
    //                                
    // but we don't want to return "/steve" but "steve" 
    // so lets subtract string from index of last `/`
    // increased by one 
    

    输出:

    steve
    adam
    

    【讨论】:

    • 没问题。如果该答案解决了您的问题,您可以accept it。这是说“谢谢”的另一种方式,因此其他 SO 用户将看到您的问题中的问题已解决,因此他们可以专注于帮助其他人:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多