2014-01-21 158 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返回“世界”。