2011-10-07 84 views
3

我需要幫助修剪字符串url。需要修整Java字符串

比方說String爲http://myurl.com/users/232222232/pageid

我想回到什麼是/232222232/pageid

現在「myurl.com」可以改變,但/users/將始終是相同的。

回答

4

我建議你使用substringindexOf("https://stackoverflow.com/users/")

String url = "http://myurl.com/users/232222232/pageid"; 
String lastPart = url.substring(url.indexOf("https://stackoverflow.com/users/") + 6); 

System.out.println(lastPart);  // prints "/232222232/pageid" 

一個稍微複雜的變異將讓URL類解析爲您的網址:

URL url = new URL("http://myurl.com/users/232222232/pageid"); 
String lastPart = url.getPath().substring(6); 

System.out.println(lastPart);  // prints "/232222232/pageid" 

而且,第三種方法,使用正則表達式:

String url = "http://myurl.com/users/232222232/pageid"; 
String lastPart = url.replaceAll(".*/users", ""); 

System.out.println(lastPart);  // prints "/232222232/pageid" 
+0

這個很棒,因爲它只是從字符串的開始處切下。 – user979587

1
string.replaceAll(".*/users(/.*/.*)", "$1"); 
+2

第二個'/.*'是不必要的。此外,爲什麼要使用捕獲組?請參閱[我的答案](http://stackoverflow.com/questions/7688005/need-to-trim-java-string/7688027#7688027):-) – aioobe

+0

確實,這不是必要的,但我認爲捕獲組更多在瞭解你所得到的信息方面是可以理解的。 –

2
String rest = url.substring(url.indexOf("https://stackoverflow.com/users/") + 6); 
+0

OP希望保留'/ users /'的最後一個斜槓。 –

+0

@XaviLópez:更新 – dacwe

+0

比從未更好的遲到! –

0

您可以使用String.indexOf()String.substring()爲了實現這一點:

String pattern = "https://stackoverflow.com/users/"; 
String url = "http://myurl.com/users/232222232/pageid"; 
System.out.println(url.substring(url.indexOf(pattern)+pattern.length()-1); 
1

您可以使用split(String regex,int limit)將在regex最多limit倍左右分割的格局字符串,所以...

String url="http://myurl.com/users/232222232/pageid"; 
String[] parts=url.split("/users",1); 
//parts={"http://myurl.com","/232222232/pageid"} 
String rest=parts[1]; 
//rest="/232222232/pageid" 

這個限制是爲了防止字符串"http://myurl.com/users/232222232/users/pageid"給出像"/232222232"這樣的答案。

+0

我會給這個'split'函數添加一個限制參數('1')。 – aioobe

+0

@aioobe好點 - 編輯 – jgon