2014-01-21 117 views

回答

5

String.split需要一個正則表達式的參數。由於?是一個特殊字符在正則表達式,做你想做什麼,你居然把它寫成:

myStr.split("\\?"); 

並因此將其識別爲文字?,而不是作爲一個特殊的正則表達式字符。

請注意,需要兩個反斜槓。正則表達式本身是"\?",但由於要將"\"放入java字符串中,我們需要將它寫爲"\\",因此表達式字符串將變爲"\\?"

要了解有關正則表達式的更多信息,我建議您查看this site

0

這是一個uri,符合標準的URI語義。因此,您可以使用Android中的標準Uri表示之一爲您完成繁重工作。您的Uri在?字符之後包含一個查詢字符串,該字符串跟在Uri的主要部分之後,並由多個用&字符分隔的鍵/值對組成。你只需要分析你的URI到ndroid.net.Uri對象,然後調用getQueryParameter(String paramName)獲得您所需的查詢參數:

String raw = "http://www.mydomain.com/index.html?param1=hello&param2=world&param3=test"; 
Uri uri = Uri.parse(raw); 
String param = uri.getQueryParameter("param2"); 

這將在param返回「世界」。