Задать вопрос
@My1Name

Как заменить все ссылки в тексте?

Как максимально быстро заменить все ссылки в 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="#">
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Если я вас правильно понимаю, то вы можете использовать jsoup
Откройте документ, выберите все a[href] замените на нужные, сохраните документ
https://stackoverflow.com/questions/21529602/jsoup...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы