Я думаю, я бы использовал регулярные выражения, такие как:
public static String detectAndConvertURLs(String text) {
//Regex pattern (unescaped), matches any Internet URL:
//((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)
Pattern p = Pattern.compile( "((mailto\\:|(news|(ht|f)tp(s?))\\://){1}\\S+)" );
Matcher m = p.matcher( text );
if( m.matches() ){
return m.group(1);
}else return null;
}
Я только что взял это регулярное выражение с этого сайта полезных выражений регулярных выражений:
http://regexlib.com/Search.aspx?k=URL
Быстрый поиск в Google даст много ресурсов для выражения регулярных выражений:
http://www.google.com/search?q=regex+match+url&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
Возможно, вам придется немного помассировать регулярное выражение, чтобы обрезать материал в начале или конце, в зависимости от вашего использования.