0

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

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

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

例如我可以有: http: //software.org/trg/poo/945/stevehttp://www.amazon.com/rggf/0956/dfgh/rgf/kk/adam

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

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

4

1 回答 1

0

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

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
于 2012-11-16T16:05:19.253 回答