目前我正在尝试从RSS Feed中获取嵌入式URL。因此,初始URL具有如下特殊字符:
http://www.facebook.com/1.php?&...http://www.example.com...&“
我正在使用String.split(expression)
功能拆分并获取http://www.example.com
但对于像“?”这样的特殊表达式,我无法分割字符串。
有没有其他方法可以根据特殊字符拆分字符串?
提前致谢
答案 0 :(得分:7)
String.split期望一个参数是一个正则表达式。由于?
是正则表达式中的特殊字符,为了做你想做的事,你实际上把它写成:
myStr.split("\\?");
因此它将其识别为字符?
,而不是特殊的正则表达式字符。
请注意,需要两个反斜杠。正则表达式本身是"\?"
,但是由于要将"\"
放在java字符串中,我们需要将其写为"\\"
,因此表达式字符串变为"\\?"
。
要了解有关正则表达式的更多信息,建议您查看this site。
答案 1 :(得分:0)
这是一个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
中返回“世界”。