基于特殊字符的Android拆分字符串



当前我正在尝试从RSS feed获取嵌入式URL。因此,初始URL具有以下特殊字符:

http://www.facebook.com/1.php?&ampm 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&param2=world&param3=test";
Uri uri = Uri.parse( raw );
String param = uri.getQueryParameter( "param2" );

这将返回param中的"世界"。

最新更新