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.
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;
}
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.
[quote=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.
[/quote]
Obrigado, vou estudar o normalizer vlw
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/