当前我正在尝试从RSS feed获取嵌入式URL。因此,初始URL具有以下特殊字符:
http://www.facebook.com/1.php?&m y...http://www.example.com.....ump; p.amp;"
我正在使用 String.split(expression)
函数拆分并获取http://www.example.com
但是,对于"?"类似的特殊表达方式,我无法拆分字符串。
是否还有其他方法可以根据特殊字符拆分字符串?
string.snplit期望的参数是正则表达式。由于?
是正则表达式中的特殊角色,要做您想做的事,因此您实际上将其写为:
myStr.split("\?");
因此,它将其识别为字符 ?
,而不是特殊的正则角色。
请注意,需要两个后斜线。正则表达式本身是"?"
,但是由于要将""
放在Java字符串中,我们需要将其写入"\"
,因此表达式字符串因此变为"\?"
。
要了解有关正则表达式的更多信息,我建议您检查此网站。
这是一个URI,并且符合标准的URI语义。因此,您可以使用Android中的标准URI表示形式之一为您进行繁重。您的URI包含一个查询字符串,该字符串遵循?
字符之后URI的主要部分,并由由&
字符隔开的许多密钥/值对组成。您只需要将URI解析到ndroid.net.Uri
对象中,然后致电getQueryParameter(String paramName)
即可获取所需的查询参数:
String raw = "http://www.mydomain.com/index.html?param1=hello¶m2=world¶m3=test";
Uri uri = Uri.parse( raw );
String param = uri.getQueryParameter( "param2" );
这将返回param
中的"世界"。