Я пытаюсь сравнить файл Baselive CSV с программно загруженным файлом CSV по их содержанию. Загруженный файл CSV всегда находится в случайном порядке, поэтому я подумал о сортировке Baselive CSV, а также загруженного файла CSV.
В загруженном CSV я использую Collections [ArrayList] для хранения каждого и использую Collections.sort(csvList, Collator.getInstance(Locale.US));
и добавляю результаты обратно в CSV и пытаюсь сравнить.
Проблема в том, что
Collections.sort(csvList, Collator.getInstance(Locale.US));
отсортирует строки в следующем порядке:
ПРИМЕЧАНИЕ: нижеследующие элементы являются только 1-м полем csv
__ текст
_id
Описание бизнеса
Владелец данных
0-6_population_female
Abbrev
Account__Number
ADDRESS1
ADDRESS2
возраст
AGE
ANSWER_1
BAR
batter1
Однако выполнение сортировки в CSV вручную будет учитывать следующий приоритет
1. специальные символы
2.Numbers
3. Буквы в алфавитном порядке [независимо от регистра]
и, следовательно, мои отсортированные предметы
__TEXT
_id
0-6_population_female
Abbrev
Account__Number
ADDRESS1
ADDRESS2
возраст
AGE
ANSWER_1
BAR
batter1
Описание бизнеса
Владелец данных
Почему сортировка кода дает мне приведенный выше вывод, который отличается от ручной сортировки.
Как я могу получить сортировку прямо через мой код, чтобы он помог мне сравнить загруженный CSV с базовой линией. Любая помощь приветствуется.