2011-06-22 79 views
0

讓我們說我有位於文件:的Java:從URI誰包含文件中獲取參數

http://example.com/123.app 

現在我使用以下(U是一個完整的URL字符串),獲取文件名

String fileName = u.substring(u.lastIndexOf('/')+1, u.length()); 

,但我希望把相同的文件名也參數,所以它會是什麼樣子,這樣的:

http://example.com/123.app?id=87983 

我想甲肝e將包含'123.app'的字符串文件名,以及包含'87983'和可能更多參數的字符串ID。

我該如何去實現這一目標?

回答

1

你需要在字符串上使用split方法。因此,例如,在你的文件名字符串

String[] mystrings = fileName.split("?"); 

然後mystrings [0]是你的文件名和mystrings [1]是參數

0

試試這個正則表達式

String s = "http://example.com/123.app?id=87983"; 
    String[] split = s.split(".*/|\\?id="); 
    String filename = split[1]; 
    String id = (split.length == 3) ? split[2] : null; 
1

的簡單方法是:只需要重複子:

int qidx = filename.indexOf("?"); 
String realFilename = filename.substring(0, qidx); 
String parameters = filename.substring(qidx+1); 

等來解析參數。

如果你正在寫一個servlet嘗試:

String fileName = request.getServletPath(); 

和參數財產以後像

String id = request.getParameter("id"); 
2

使用URI的API!這就是它的目的。忘記所有這些substring/regex/spit的東西。