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

时间:2014-01-21 10:48:43

标签: java android

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

http://www.facebook.com/1.php?&...http://www.example.com...&

我正在使用String.split(expression)功能拆分并获取http://www.example.com

但对于像“?”这样的特殊表达式,我无法分割字符串。

有没有其他方法可以根据特殊字符拆分字符串?

提前致谢

2 个答案:

答案 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&param2=world&param3=test";
Uri uri = Uri.parse( raw );
String param = uri.getQueryParameter( "param2" );

这将在param中返回“世界”。