Olá:
Preciso de alguma dica para converter letras acentuadas em não acentuadas numa determinada String.
Ex:
são -> sao
ação -> acao
FLÁVIO -> FLAVIO
etc.
Sera que alguma coisa envolvendo a classe java.text.Collator ajuda?
Grato,
Olá:
Preciso de alguma dica para converter letras acentuadas em não acentuadas numa determinada String.
Ex:
são -> sao
ação -> acao
FLÁVIO -> FLAVIO
etc.
Sera que alguma coisa envolvendo a classe java.text.Collator ajuda?
Grato,
Olá
Um método simples em português é fazer na raça substituindo (com ou sem expressão regular) ã por a, á por a, à por a, â por a, é por e, ê por e, í por i, ó por o, ô por o, õ por o, ú por u, ü por u, ç por c e idem para as maiúsculas.
[]s
Luca
Luca:
Foi o que acabei fazendo:
private char convertChar(char c) {
switch (c) {
case 'Á':
case 'Ä':
case 'À':
case 'Â':
case 'Ã':
c = 'A';
break;
case 'Ç':
c = 'C';
break;
case 'É':
case 'Ë':
case 'È':
case 'Ê':
c = 'E';
break;
case 'Í':
case 'Ï':
case 'Ì':
case 'Î':
c = 'I';
break;
case 'Ñ':
c = 'N';
break;
case 'Ó':
case 'Ö':
case 'Ò':
case 'Ô':
case 'Õ':
c = 'O';
break;
case 'Ú':
case 'Ü':
case 'Ù':
case 'Û':
c = 'U';
break;
case 'á':
case 'ä':
case 'à':
case 'â':
case 'ã':
c = 'a';
break;
case 'ç':
c = 'C';
break;
case 'é':
case 'ë':
case 'è':
case 'ê':
c = 'e';
break;
case 'í':
case 'ï':
case 'ì':
case 'î':
c = 'i';
break;
case 'ñ':
c = 'n';
break;
case 'ó':
case 'ö':
case 'ò':
case 'ô':
case 'õ':
c = 'o';
break;
case 'ú':
case 'ü':
case 'ù':
case 'û':
c = 'u';
break;
}
return c;
}
// ...
char[] chars = obj.toString().toCharArray();
for(int i = 0; i < chars.length; i ++) {
chars[i] = this.convertChar(chars[i]);
}
return new String(chars);
Se alguém tiver uma idéia melhor, me avise.
Grato,