Forma feia, chata e antipática
public String removeAcentos (String string){
string = string.replaceAll("[ÂÀÁÄÃ]","A");
string = string.replaceAll("[âãàáä]","a");
string = string.replaceAll("[ÊÈÉË]","E");
string = string.replaceAll("[êèéë]","e");
string = string.replaceAll("ÎÍÌÏ","I");
string = string.replaceAll("îíìï","i");
string = string.replaceAll("[ÔÕÒÓÖ]","O");
string = string.replaceAll("[ôõòóö]","o");
string = string.replaceAll("[ÛÙÚÜ]","U");
string = string.replaceAll("[ûúùü]","u");
string = string.replaceAll("Ç","C");
string = string.replaceAll("ç","c");
string = string.replaceAll("[ýÿ]","y");
string = string.replaceAll("Ý","Y");
string = string.replaceAll("ñ","n");
string = string.replaceAll("Ñ","N");
return string;
}
Forma bonita e elegante
public static String removeAcentos(String string) {
if (string != null){
string = Normalizer.normalize(string, Normalizer.Form.NFD);
string = string.replaceAll("[^\\p{ASCII}]", "");
}
return string;
}
PS. Na verdade existem várias formas de fazer isso.
Este comentário foi removido pelo autor.
ResponderExcluirNão é a mesma coisa, o primeiro troca letras com acentos por letras sem acentos, enquanto que o segundo remove a letra, não substituindo por nenhuma outra.
ResponderExcluirClayton, sao dois comandos. O primeiro faz a troca dos caracteres acentuados pelos correspondentes nao acentuados:
ResponderExcluirNormalizer.normalize(string, Normalizer.Form.NFD)
O segundo remove "sujeiras" deixadas no processo:
string.replaceAll("[^\\p{ASCII}]", "");
A segunda opção funciona perfeitamente. Obrigado!
ResponderExcluir