Como remover tags html de uma string

como faço pra remover tags html de uma string em jsp/java?

em PHP tem a funcao strip_tags, q retorna a string sem nenhuma tag html

strip_tags("<b>Adriano</b>") //retorna Adriano

desde já obrigado

tu pode manter um vetor da vida com as tags html, e pegar essa String como um StringBuffer e varrer esse buffer pra procurar as tags q tu conhece e quer tirar e remover do buffer

Salve,

seguindo a mesma linha de raciocínio que o matheus colocou, você pode utilizar a o comando suaString.replaceAll("<br>", “”); para simplificar.

:okok:

se eu fizer isso q vc disse, marcos, nao resolve o meu problema, pois só vai remover a tag <br>,

o q eu quero é remover todas as tags html q tiver na string…

seria inviavel fazer uma funcao q procura pelas tags html de uma por uma, eu levaria uma eternidade pra escrever todas, definitivamente usar o replace não é a solucao pra esse caso;

além do mais eu nao sei quais as tags q essa string vai ter, e é isso q a funcao deve fazer: verificar se tem alguma tag e remover…

a funcao strip_tags() do PHP faz isso… pensei q existisse em java uma função q fazia a mesma coisa

vou dar uma pesquisada na api do java no site da sun

mas obrigado pela ajuda, valeu

Eu tava precisando dessa função pq to fazendo um livro de visitas e quero impedir q os usuários insiram tags html e códigos javascript.

Eu pesquisei na api do java e não achei nenhuma função q faz isso, então tive q fazê-la eu mesmo. Ela não ficou exatamente do jeito q eu queria mas resolve meu problema, mas de qualquer maneira acho q essa função é muito útil, e vou colocar o código dela aki,

Se alguem se interessar e quiser dar uma revisada e melhorada nessa função seria bom, pq ainda tem alguns problemas, por exemplo, se o cara colocar um texto assim: “<adriano> email taltaltal”, “<adriano>” será removido mesmo não sendo uma tag html, e eu queria q só fossem removidas tags válidas… mas eu to sem tempo e paciência pra arrumar.

adriano@praxys.com.br
aí vai o código

[code]public String fnStripTags (String str)
{
/**
* se encontrar o caracter ‘<’ tag fica true (abertura de tag)
* e tudo q tiver entre os caracteres ‘<’ e ‘>’ será ignorado,
* se for uma tag válida, quando o caracter ‘>’ for
* encontrado tag fica falso (fechamento de tag)…
*/
boolean tag = false;
String novaStr = “”, auxStr = “”;

// varre todos os caracteres a procura de tags html
for &#40;int i = 0; i &lt; str.length&#40;&#41;; i++&#41; &#123; 
	if &#40;tag&#41; &#123; // tag encontrada
		if&#40;str.charAt&#40;i&#41; == '&gt;'&#41; &#123; // encontrado caracter de fechamento de tag
			tag = false;
			auxStr += str.charAt&#40;i&#41;;					
			novaStr += html&#40;auxStr&#41;; // verifica se é uma tag válida
			auxStr = &quot;&quot;;
		&#125; else if &#40;tag&#41; &#123;
			if&#40;str.charAt&#40;i&#41; == '&lt;'&#41; &#123; // encontrado caracter de abertura de tag
				novaStr += auxStr;
				auxStr = &quot;&quot;;
			&#125; 
			auxStr += str.charAt&#40;i&#41;;
		&#125;	
	&#125; else &#123;
		if&#40;str.charAt&#40;i&#41; == '&lt;'&#41; &#123; // encontrado caracter de abertura de tag
			auxStr += str.charAt&#40;i&#41;;
			tag = true;
		&#125; else &#123;
			novaStr += str.charAt&#40;i&#41;; // string sem as tags html
		&#125;
	&#125;
	
	// caso seja achado '&lt;' sem achar '&gt;'
	if&#40;tag &amp;&amp; i == &#40;str.length&#40;&#41; - 1&#41;&#41; &#123;
		novaStr += auxStr;
	&#125;
&#125;
return novaStr;

}

// verifica se o conteude de str é uma tag html válida
public String html(String str)
{
boolean found = false;
String[] tags = {"A", "ADDRESS", "APPLET", "AREA", "B", "BASE", "BASEFONT", "BIG", "BLOCKQUOTE",
"BODY", "BR", "CAPTION", "CENTER", "CITE", "CODE", "DD", "DFN", "DIR", "DIV",
"DL", "DT", "EM", "FONT", "FORM", "FRAME", "FRAMESET", "H1", "H2", "H3", "H4",
"H5", "H6", "HEAD", "HR", "HTML", "I","IMG", "INPUT", "ISINDEX", "KBD", "LI", "LINK",
"MAP", "MENU", "META", "NOBR", "NOFRAMES", "OBJECT", "OL", "OPTION", "P","PARAM", "PRE",
"SAMP", "SCRIPT", "SELECT", "SMALL", "SPAN", "STRIKE", "S","STRONG", "STYLE", "SUB", "SUP",
"TABLE", "TD", "TEXTAREA", "TH", "TITLE", "TR", "TT", "U","UL", "VAR" };

for &#40;int i =0; i &lt; tags.length; i++&#41; &#123;
	if &#40;str.indexOf&#40;&quot;&lt;&quot; + tags&#91;i&#93;&#41; != -1 || // se tem &lt;tag
		str.indexOf&#40;tags&#91;i&#93; + &quot;&gt;&quot;&#41; != -1 ||	// se tem tag&gt;
		str.indexOf&#40;&quot;&lt;&quot; + tags&#91;i&#93;.toLowerCase&#40;&#41;&#41; != -1 || // se tem &lt;tag maiusculo				
		str.indexOf&#40;tags&#91;i&#93;.toLowerCase&#40;&#41; + &quot;&gt;&quot;&#41; != -1&#41; &#123; // se tem tag&gt; maiusculo
		found = true;
	&#125;			
&#125;

if &#40;found&#41; return &quot;&quot;;
				
return str;

}[/code]

Lekes, uma regex mata isso fácil fácil !!!

Em Javascript:
<*>

Em Java:
<.*>

essa regex vai casar tudo que estiver dentro das < >.