2014-01-21 4 views
1

В настоящее время я пытаюсь получить внедренный URL-адрес из RSS-канала. Таким образом, начальный URL имеет специальные символы, такие как следующие:Строка для Android, основанная на специальных символах

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

Я использую String.split(expression) функцию, чтобы разделить и получить http://www.example.com

Но для специальных выражений, как„“, я не в состоянии разделить строку.

есть ли другой способ разделить строки на основе специальных символов?

заранее спасибо

ответ

5

String.split ожидает параметр, который является регулярным выражением. Поскольку ? специальный символ в регулярных выражениях, чтобы делать то, что вы хотите, вы на самом деле написать:

myStr.split("\\?"); 

И, таким образом, она признает его как символ ?, а не в качестве специального символа регулярного выражения.

Обратите внимание, что необходимы две обратные косые черты. Само регулярное выражение равно "\?", но так как для ввода "\" в строке java нам нужно записать его как "\\", строка выражения, таким образом, станет "\\?".

Чтобы узнать больше о регулярных выражениях, я рекомендую вам проверить this site.

0

Это uri и соответствует стандартной семантике URI. Поэтому вы можете использовать одно из стандартных представлений Uri в Android, чтобы сделать тяжелый подъем для вас. Ваш 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.

Смежные вопросы