Saltar para conteúdo


Foto
- - - - -

Ordenar arraylist de array de strings tendo em conta acentos.


  • Por favor inicie sessão para responder
1 resposta a este tópico

#1 kodiak

kodiak

    Membro

  • Membros
  • PipPip
  • 167 mensagens

Mensagem publicada 12 August 2013 - 20:46

Olá pessoal.
 
Estou a ordenar um 
 
ArrayList<String[]> allData
 
 e faço deste modo:
                Collections.sort(allData, new Comparator<String[]>() {
                    @Override
                    public int compare(String[] lhs, String[] rhs) {
                        return lhs[1].compareTo(rhs[1]);
                    }

                });
Até aqui nada de mais. Está funcionar tudo correctamente com excepção dos acentos, isto é, imaginemos que dentro do array list tenho os seguintes arrays de strings:
 
 
"dados","á","dados"
"dados","b","dados"
"dados","a","dados"
Ao ordenar os dados são apresentados deste modo:
"dados","a","dados"
"dados","b","dados"
"dados","á","dados"
Ou seja, os dados com acentos vão para o fim.
 
Sei que se tivesse um arraylist de strings (não de array de strings) podia fazer:
 
Collator collator = Collator.getInstance(Locale.PT);
Collections.sort(arraylist, collator);
Alguma ideia como posso resolver o meu problema?
 
Obrigado, 
 
kodiak

#2 kodiak

kodiak

    Membro

  • Membros
  • PipPip
  • 167 mensagens

Mensagem publicada 16 August 2013 - 11:17

                final Collator collator = Collator.getInstance(Locale.getDefault());
                Collections.sort(allFoodData, new Comparator<String[]>() {
                    @Override
                    public int compare(String[] lhs, String[] rhs) {
                        return collator.compare(lhs[1],rhs[1]);
                    }

                }); 

Para a posteridade
 


  • pedronveloso gosta disto