Eu acabei usando umas classes aqui que me passaram…E deu certo…Vou repassar pra vcs caso alguem tenha interesse ou o mesmo problema.
[code] private static Map<String, String> letrasComAcento_SemAcento = new HashMap<String, String>();
static {
letrasComAcento_SemAcento.put(“À”, “A”);
letrasComAcento_SemAcento.put(“à”, “a”);
letrasComAcento_SemAcento.put(“Á”, “A”);
letrasComAcento_SemAcento.put(“á”, “a”);
letrasComAcento_SemAcento.put(“”, “A”);
letrasComAcento_SemAcento.put(“â”, “a”);
letrasComAcento_SemAcento.put(“Ô, “A”);
letrasComAcento_SemAcento.put(“ã”, “a”);
letrasComAcento_SemAcento.put("È", "E");
letrasComAcento_SemAcento.put("è", "e");
letrasComAcento_SemAcento.put("É", "E");
letrasComAcento_SemAcento.put("é", "e");
letrasComAcento_SemAcento.put("Ê", "E");
letrasComAcento_SemAcento.put("ê", "e");
letrasComAcento_SemAcento.put("Ì", "I");
letrasComAcento_SemAcento.put("ì", "i");
letrasComAcento_SemAcento.put("Í", "I");
letrasComAcento_SemAcento.put("í", "i");
letrasComAcento_SemAcento.put("Î", "I");
letrasComAcento_SemAcento.put("î", "i");
letrasComAcento_SemAcento.put("Ò", "O");
letrasComAcento_SemAcento.put("ò", "o");
letrasComAcento_SemAcento.put("Ó", "O");
letrasComAcento_SemAcento.put("ó", "o");
letrasComAcento_SemAcento.put("Ô", "O");
letrasComAcento_SemAcento.put("ô", "o");
letrasComAcento_SemAcento.put("Õ", "O");
letrasComAcento_SemAcento.put("õ", "o");
letrasComAcento_SemAcento.put("Ù", "U");
letrasComAcento_SemAcento.put("ù", "u");
letrasComAcento_SemAcento.put("Ú", "U");
letrasComAcento_SemAcento.put("ú", "u");
letrasComAcento_SemAcento.put("Û", "U");
letrasComAcento_SemAcento.put("û", "u");
letrasComAcento_SemAcento.put("Ç", "C");
letrasComAcento_SemAcento.put("ç", "c");
}
private static class ComparadorDeAreaDeAtuacaoPelaDescricao implements Comparator<AreaDeAtuacao> {
public int compare(AreaDeAtuacao a1, AreaDeAtuacao a2) {
try {
StringBuilder descricao1 = new StringBuilder(a1.getDescricao());
StringBuilder descricao2 = new StringBuilder(a2.getDescricao());
if (descricao1.toString().equals(descricao2.toString())) {
return 0;
}
// -------------
tirarAcentoDaPrimeiraLetraSePossivel(descricao1);
tirarAcentoDaPrimeiraLetraSePossivel(descricao2);
/*
* caso os dois tenham a mesma primeira letra então compara normal
* sem utilizar as primeiras letras modificadas...
* para que o acento venha depois com certeza....
*/
if (descricao1.charAt(0) == descricao2.charAt(0)) {
return a1.getDescricao().compareTo(a2.getDescricao());
}
// compara com as letras modificadas
return descricao1.toString().compareTo(descricao2.toString());
} catch (Exception e) {
return 0;
}
}
private void tirarAcentoDaPrimeiraLetraSePossivel(StringBuilder texto) {
String primeiraLetra = texto.substring(0, 1);
boolean primeiraLetraPossueAcento = letrasComAcento_SemAcento.containsKey(primeiraLetra);
if (primeiraLetraPossueAcento) {
String primeiraLetraSemAcento = letrasComAcento_SemAcento.get(primeiraLetra);
texto.replace(0, 1, primeiraLetraSemAcento);
}
}
}[/code]