Android игнорирует регистр при сортировке списка - PullRequest
2 голосов
/ 28 марта 2011

У меня есть список с именем path. Я в настоящее время сортирую строки со следующим кодом.

  java.util.Collections.sort(path);

Это нормально работает, сортирует мой список, но обрабатывает первые буквы по-разному, то естьсортирует список по буквам в верхнем регистре, а затем сортирует список по буквам в нижнем регистре, поэтому, если бы у меня была следующая кошка-собака Bird Zebra, она бы отсортировала его как

Bird
Zebra
dog
cat

, так как игнорировать регистр, чтобыэта собака и кошка придут до зебры, но после птицы?Спасибо за любую помощь

Ответы [ 3 ]

11 голосов
/ 28 марта 2011

Используйте встроенный компаратор String String.CASE_INSENSITIVE_ORDER

java.util.Collections.sort(path, String.CASE_INSENSITIVE_ORDER);
3 голосов
/ 21 января 2014
Collections.sort(path,new Comparator<String>(){
   public int compare(String strA, String strB) {
    return strA.compareToIgnoreCase(strB);
  }
});
3 голосов
/ 28 марта 2011

Создайте собственный класс компаратора:

import java.util.Comparator;

class IgnoreCaseComparator implements Comparator<String> {
  public int compare(String strA, String strB) {
    return strA.compareToIgnoreCase(strB);
  }
}

Тогда в вашем роде:

IgnoreCaseComparator icc = new IgnoreCaseComparator();

java.util.Collections.sort(path,icc);
...