[RESOLVIDO] Remover acentos de String usando expressões regulares

4 respostas
R

Bom dia,

Achei varios topicos falando sobre isso tanto aqui no guj quanto pela internet afora mas por algum motivo as soluções apresentadas nao estao funcionando comigo.
O problema é o seguinte, fiz uma função para remover acentos de string usando regexp mas não funciona, a string continua com o acento, porem se eu fizer a mesma função usando um replace normal sem regexp, ae funciona, porem eu teria q usar muito mais replaces do q se a regexp funcionasse. Segue o metodo abaixo, se alguem souber o q esta errado me ajude por favor.

public static String removeAcentos(String palavra) {  
        palavra = palavra.replaceAll("/[aáàãâä]/g","a");
	return palavra;
    }

Obs: não sei se deve ser levado em consideração mas esta mesma regexp, da mesma forma q esta escrita ae acima no metodo (/[aáàãâä]/g) funciona no javascript normalmente.

4 Respostas

R

consegui resolver, por algum motivo esta mesma solução nao funcionou anteriormente mas agora funcionou, devo ter errado em algo antes, mas segue abaixo o metodo funcionando:

public static String removeAcentos(String palavra) {    
        palavra = palavra.replaceAll("[aáàãâä]","a");  
    return palavra;  
    }
E

Não é preciso usar expressões regulares. O correto é usar um Normalizer.

http://docs.oracle.com/javase/7/docs/api/java/text/Normalizer.html
Use a constante Normalizer.Form.NFD.

R

entanglement:
Não é preciso usar expressões regulares. O correto é usar um Normalizer.

http://docs.oracle.com/javase/7/docs/api/java/text/Normalizer.html
Use a constante Normalizer.Form.NFD.

Obrigado, vou estudar o normalizer vlw

R

Encontrei algo sobre o normalizer, segue link, ja testei e realmente é a melhor solução http://www.jairhenrique.com/2011/04/removendo-acentos-de-string-com-java/

Criado 26 de março de 2013
Ultima resposta 26 de mar. de 2013
Respostas 4
Participantes 2