Как максимально быстро заменить все ссылки в html тексте?
Ниже приведен мой вариант решения, но я думаю это должно решаться как-то проще и короче. Например с использованием паттернов или регулярных выражений?
private String setLinks(String text) {
StringBuilder body = null;
if (text.indexOf("http")!=-1) {
body = new StringBuilder();
String tmp; int index;
Stream <String> stream = text.lines();
Iterator <String>it = stream.iterator();
while(it.hasNext()) {
String s = it.next();
index = s.indexOf("https:");
if (index==-1)
index = s.indexOf("http:");
if (index!=-1) {
tmp = s.substring(index);
if (tmp.indexOf("</")!=-1)
tmp = tmp.substring(0, tmp.indexOf("</"));
if (tmp.indexOf(" ")!=-1)
tmp = tmp.substring(0, tmp.indexOf(" "));
body.append(s.substring(0,index));
body.append("<a href=\""); body.append(tmp);
body.append("\" class=\"add-links\" target=\"_blank\" rel=\"noopener nofollow\">");
body.append(tmp); body.append("</a>");
index = s.indexOf(tmp);
tmp = s.substring(index+tmp.length());
body.append(tmp);
body.append(" ");
}
else {
body.append(s);
body.append(" ");
}
}
}
if (body!=null)
text = body.substring(0, body.length()-1);
return text;
}
Какие есть другие варианты? Чтоб оно работало как на Хабр-е: к текстам в виде ссылки, автоматически добавляется тег
<a href="#">