2013-09-01 95 views
1

java的正則表達式我想從網址的whatevername.css但我做錯了什麼,這些網址可能會發生變化,名稱也因此它可能是的URL CSS文件名和擴展

www.asdasad.as /asdas/asdas/mystyles.css

asda.com/styles.css 等等等等

我試過這個(但它不工作「不能從方法,其結果返回值是無效」 ):

String fileName = "www.whateverpage.es/style.css"; 
int idx = fileName.replaceAll("\\", "/").lastIndexOf("/"); 
return idx >= 0 ? fileName.substring(idx + 1) : fileName; 
+0

「它不工作」不是描述問題的好方法。你應該告訴我們你遇到了什麼問題,如果你看到任何異常發佈它的堆棧跟蹤。請使用[[edit]]選項更新您的問題和其他信息。 – Pshemo

回答

0

replaceAll使用正則表達式作爲參數,並表示\在正則表達式引擎的文字,你需要通過\\字面所以你需要把它寫爲"\\\\"字符串

int idx = fileName.replaceAll("\\\\", "/").lastIndexOf("/"); 

爲了擺脫這種瘋狂的嘗試也許replace('\\','/')而不是replaceAll。這種方法不會使用正則表達式,但唯一的字符開關,讓你的代碼可以像

int idx = fileName.replace('\\', '/').lastIndexOf("/"); 

編輯您的更新後

不能從方法,其結果是無效的返回值

此錯誤是由於您的方法的返回類型爲void而不是String。將您的方法聲明從void yourMethodsName()更改爲String yourMethodsName()

+0

問題是最後一行它說「不能從返回結果爲無效的方法返回值」,但我可能會記住替換的東西 – user2666872

+0

哦,所以在這種情況下將方法聲明更改爲'String yourMethodsName()'而不是'void yourMethodsName()' – Pshemo

+0

哦真實...dziękuję! – user2666872