2012-11-16 55 views
0

我正在創建一個Java項目,在其中生成URI(統一資源標識符)作爲輸出。 一個URI的例子是:www.myexample.com/rgd/543/mary。從RDF資源中刪除命名空間

我需要提取這種URI的最後一部分,這是前一個URI中的URI。

我需要一個可擴展的解決方案,因爲我可能有不同形式的URI,但我總是需要在「/」之後得到最後一部分。

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

,我需要分別比上年提取的URI和史蒂夫亞當。

我知道正則表達式可以工作,但在正則表達式中沒有太多經驗。 非常感謝提前。

回答

0

代替正則表達式,你可以使用substringlastIndexOf方法上代表你的URI的字符串,如

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 
+0

非常感謝你。我用你的建議解決了它。 – user1787222

+0

沒問題。如果該答案解決了您的問題,您可以[接受它](http://meta.stackexchange.com/a/5235/186652)。這是其他方式說「謝謝」,並感謝它其他SO用戶會看到你的問題的問題已經解決,所以他們可以專注於幫助其他人:) – Pshemo