我需要幫助修剪字符串url。需要修整Java字符串
比方說String爲http://myurl.com/users/232222232/pageid
我想回到什麼是/232222232/pageid
現在「myurl.com」可以改變,但/users/
將始終是相同的。
我需要幫助修剪字符串url。需要修整Java字符串
比方說String爲http://myurl.com/users/232222232/pageid
我想回到什麼是/232222232/pageid
現在「myurl.com」可以改變,但/users/
將始終是相同的。
我建議你使用substring
和indexOf("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"
string.replaceAll(".*/users(/.*/.*)", "$1");
第二個'/.*'是不必要的。此外,爲什麼要使用捕獲組?請參閱[我的答案](http://stackoverflow.com/questions/7688005/need-to-trim-java-string/7688027#7688027):-) – aioobe
確實,這不是必要的,但我認爲捕獲組更多在瞭解你所得到的信息方面是可以理解的。 –
String rest = url.substring(url.indexOf("https://stackoverflow.com/users/") + 6);
您可以使用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);
您可以使用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"
這樣的答案。
這個很棒,因爲它只是從字符串的開始處切下。 – user979587