[RESOLVIDO]Deletar parte de uma String

11 respostas
Flip_novidade

oi galera
tou fazendo um app, mais minha duvida é na parte de logica mesmo em java
tou exibindo dados de um campo do bd... mais esse campo do pg vem muitas tags html
e com o replace não consegui deletar todas essas tags...
preciso de algo para deletar uma linha que comece com "<" e termine com ">" (entre "<" e ">')
segue o link da imagem e meu codigo.
pelo oque eu entendi preciso colocar isso dentro de um laço e itentificar o carcter inicial e final, e substituir em um replace.

...
               String respostaRetornada = null;
		try {
			respostaRetornada = Conexao
					.executaHttpPost(urlPost, parametrosPost);
			String resposta = respostaRetornada.toString();
			respostaRetornada = respostaRetornada.replaceAll("  ", " ");
			respostaRetornada = respostaRetornada.replaceAll("  ", " ");
			respostaRetornada = respostaRetornada.replaceAll("<br />", " ");
			respostaRetornada = respostaRetornada.replaceAll("<br/>", " ");
			respostaRetornada = respostaRetornada.replaceAll("<strong>", " ");
			respostaRetornada = respostaRetornada.replaceAll("</strong>", " ");
			respostaRetornada = respostaRetornada.replaceAll("<em>", " ");
			respostaRetornada = respostaRetornada.replaceAll("</em>", " ");
			respostaRetornada = respostaRetornada.replaceAll("\n" , "");
			respostaRetornada = respostaRetornada.replaceAll("  ", "\n");
			respostaRetornada = respostaRetornada.replaceAll("  ", " ");
			

	        //int beginIndex = respostaRetornada.indexOf("<");  
	        //int endIndex = respostaRetornada.indexOf("/>");  
	        //respostaRetornada = respostaRetornada.substring(beginIndex += 2, endIndex);  
	        
			for(int i=0; i<respostaRetornada.length(); i++){
				//como pegar o caracter e deletar entre "<" e "<"
				
				
				
			}
			
			//monta a string
			especificacaodanoticia = (TextView) findViewById(R.id.textViewExpecificacao);
			especificacaodanoticia.setText(respostaRetornada);
			
			
		} catch (Exception erro) {
			Mensagens("Impossivel exibir lista ", "Verifique sua internet:  "
					+ erro);

		}
     ...

11 Respostas

Rodrigo_Sasaki

Não entendi, você quer deletar todas as tags html?

Flip_novidade

isso…
eu dei um replace mais nesta tag d eimagem não da certo… pq cada noticia a tag de imagem muda
deletar as tags html que restaram na string

Rodrigo_Sasaki

Altere pra sua necessidade, mas isso deve funcionar:

String html = "<html><head><title>Title</title></head><body>Body</body></html>"; String text = html.replaceAll("<.*?>", "");

Flip_novidade

amigo sera que isso funciona com uma tga grande
desc

algo assim…

mais vou com essa sua explicação

Z

Pesquisadinha rápida no google =D :

String html = "<html>teste1<head>teste2<title>teste3</title></head><body>teste4<b>teste5</b></body></html>";
		System.out.print(html.replaceAll("\\<[^>]*>",""));]

abss

Rodrigo_Sasaki

Flip_novidade:
amigo sera que isso funciona com uma tga grande
desc

algo assim…

mais vou com essa sua explicação

Funciona sim, amigo… como a expressão usa um curinga (.*) ele vai casar com qualquer caractere até que encontre a tag que fecha “>”

você pode melhorar esses replaces aí… tá muito bagunçado. Só esse aí que te passei já corta vários.

Flip_novidade

digao muito obrigado deu certo sim
com isso consegui eliminar um monte de replace.

respostaRetornada = respostaRetornada.replaceAll("<.*?>", "");
Rodrigo_Sasaki

Eu vi que você remove os espaços em branco também, quando existe mais de um. você pode fazer um replace que substitua quantos espaços em branco houverem por apenas um, assim: str.replace("\\s+", ""); Expressões regulares são bem interessantes, e eu recomendo o estudo delas, elas podem quebrar um galho se usadas corretamente, mas não se deve abusar delas também, geralmente a performance na utilização delas não é boa.

você pode dar uma pesquisada no material do aurélio, ele tem uns livros muito fáceis de entender.

Flip_novidade

assim?

str.replace("\\s+", "");

ou assim?

str.replace("\\s+", " ");

mais de dois espaços por um espaço

Rodrigo_Sasaki

é da maneira que você fez mesmo.str.replaceAll("\\s+", " ");Digitei direto no GUJ e não prestei atenção.

Flip_novidade

beleza valeu mesmo

Criado 5 de setembro de 2012
Ultima resposta 5 de set. de 2012
Respostas 11
Participantes 3