Алфавитная сортировка пользователей

У меня несколько пользователей в моей БД, я хочу иметь возможность сортировать их по алфавиту ... однако некоторые названия начинаются с прописных и некоторых строчных ... по умолчанию он сортирует AZ, затем az, затем 0-9,

Если посмотреть, есть ли способ сделать сортировку равной 0-9, тогда az (верхний / нижний), чтобы конечный результат был абсолютным алфавитным списком независимо от случая

r.db('DB_Name').table('users').orderBy('id')

java,sorting,order,

-1

Ответов: 1


0

Создал пользовательский компаратор, который сортируется на основе определенного порядка, как задано в вопросе

String ORDER= "012345678910AaBbCcDdEeHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";


  public class MyComparator implements Comparator<String> {

        public int compare(String o1, String o2) {
            final String ORDER= "012345678910AaBbCcDdEeHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
               int pos1 = 0;
               int pos2 = 0;
               for (int i = 0; i < Math.min(o1.length(), o2.length()) && pos1 == pos2; i++) {
                  pos1 = ORDER.indexOf(o1.charAt(i));
                  pos2 = ORDER.indexOf(o2.charAt(i));
               }

               if (pos1 == pos2 && o1.length() != o2.length()) {
                   return o1.length() - o2.length();
               }

               return pos1  - pos2  ;
            }

        public static void main(String[] args)
        {

            String[]s={"John","JoHn","JOHN","1Barry","Baary","BARRY"};
            Arrays.sort(s,new MyComparator());
            System.out.println(Arrays.ToString(s));



        }


    }
Java, сортировка, порядок,
Похожие вопросы