Eu tenho uma String que contém um html e quero tirar as tags do texto. Sei que não posso usar a função de JEE e JSE que retira as tags porque não funciona em JME, que é a tecnologia que estou usando.
Bem, o erro que está retornando é este aqui: String index out of range: -118
A linha em que acredito que esteja acontecendo o erro é no último if, logo: if (inicio2 - fim != 1)…
Então, se alguém puder me ajudar a resolver isto, obrigada!
Stringteste="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"+"<html>"+"<head>"+"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"+"<title></title>"+"</head>"+"<body>"+"Lalala"+"</body>"+"</html>";System.out.println(teste.replaceAll("<[//?\s\p{Graph}&&[^<>]]*>",""));
Acho que dá p/ melhorar a expressão regular <[//?a-zA-Z\\s\\p{Graph}&&[^<>]]*>
O que ela faz?
Obtem tudo que começa por < e termina com >
O conteúdo dentro dos sinais < e > é constituído por uma string que:
Tenha ou não a barra (//?)
Seja um espaço em braco (\\s)
Seja um simbolo gráfico, desde que não tenha < e > (\\p{Graph}&&[^<>])
E que tudo isso apareça 0 ou n vezes ([...]*).
[]´s
davidbuzatto
Faltou falar
Ele troca tudo que ele encontrar seguindo o padrão que falei por nada ("").
Não sei se a class \p{Graph} só existe no Java ou se é suportada em outras linguagens também.
[]´s
Priscilla_B_Pereira
Então, eu não tenho a função “ReplaceAll” aqui no JME. Acho que terei que mexer manualmente com o loop… Mas ainda não sei como resolver.
davidbuzatto
Stringteste="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"+"<html>"+"<head>"+"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"+"<title></title>"+"</head>"+"<body>"+"Lal´ala"+"<!-- comentário -->"+"</body>"+"</html>";char[]ca=teste.toCharArray();StringBuffersb=newStringBuffer();for(inti=0;i<ca.length;i++){if(ca[i]=='<')while(ca[i]!='>')i++;if(ca[i]!='>')sb.append(ca[i]);}System.out.println(sb.toString());
E agora?
davidbuzatto
O problema é que se as tags não estiverem abertas e fechadas corretamente vai dar pau…
Outro problema pode ser o caracter < ou > dentro do texto… Esses caracteres teriam que estar codificados…
Priscilla_B_Pereira
Deu certo! Estou fazendo uma aplicação mobile que leia notícias e felizmente deu tudo certo! Obrigada por sua ajuda!