Я не знаю о наиболее эффективных (с точки зрения цикла процессора), но я бы использовал RegEx'ы. Они, безусловно, самые быстрые, эффективные и чистые с программной точки зрения.
Вы можете использовать Pattern
и Matcher
(см. http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html) или, что еще проще, использовать ярлык String.replaceAll
, который уже является частью объекта String.
myString.replaceAll( "(<URL REGEX>)", "New String $1 Here" );
где $ 1 заменяется тем, что соответствует группе # 1 в строке поиска. Вы также можете использовать онлайн-инструменты для проверки регулярных выражений во время их кодирования, например http://www.fileformat.info/tool/regex.htm.
В зависимости от типа соответствия регулярному выражению, которое вам нужно сделать, вы можете попробовать следующее регулярное выражение или выполнить быстрый онлайн-поиск лучшего.
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
Если вы никогда не использовали регулярные выражения, прежде чем начать, вы влюбитесь в них. Недостатком регулярных выражений, конечно, является то, что они медленнее, чем простой поиск или замена, но значительно более гибкие.
Удачи.
Эрик