Java сортировка строк по алфавиту

Мне нужно отсортировать список строк в алфавитном порядке:

Обычный способ сделать это — использовать компаратор:

Проблема CaseInsensitiveComparator состоит в том, что "AA" равно "aa". Строки появляются в результате в соответствии с порядком добавления для тех же значений, и это неверно:

Если вы не хотите добавлять зависимость от Guava (на ответ Майкла), то этот компаратор эквивалентен:

И я думаю, что это так же легко понять и закодировать.

Последние 4 строки метода могут быть написаны более сжато следующим образом:

Первый компаратор из цепочки будет сортировать строки в соответствии с регистрозависимым порядком, а второй компаратор будет сортировать строки в соответствии с регистрозависимым порядком. Так как исключенные строки появляются в результате в алфавитном порядке:

3 corvonik [2015-12-14 07:12:00]

Я новичок в программировании/кодировании и уже несколько дней задерживался в проекте в школе. Цель состоит в том, чтобы взять массив, полный слов (каждая позиция — другое слово) и сортировать его по алфавиту. Я уже пробовал сделать некоторые исследования, но у меня возникли проблемы с некоторыми примерами, которые я нашел. Класс и драйвер (я использую настройку из двух частей, если вы это сделаете), как компилируются, так и без проблем. Проблема возникает, когда я пытаюсь использовать alphaSort из моего драйвера. Я получаю исключение нулевого указателя для строки, указанной ниже. У меня были некоторые проблемы с этими исключениями в прошлом, поэтому я уверен, что это что-то маленькое, что я пропускаю. Однако, как указано, я еще недостаточно свободно в синтаксисе java, чтобы поймать небольшую ошибку.

Я решил, что должен просто включить весь метод в случае, если моя ошибка — это что-то в начале, перед сортировкой. Что я до сих пор (я нашел это при переполнении стека):

Любая помощь будет принята с благодарностью. Пожалуйста, будьте как можно более глубокими, чтобы дать ответ (как я уже сказал, я немного новичок в java). Спасибо:)

edit: для проверки нулевых значений (которые я предполагаю, что пятна в моем списке массивов пустые), я сделал следующий метод:

цикл while никогда не прерывался раньше, мой метод завершился.

java sorting nullpointerexception alphabetical

Я хочу отсортировать строку в JAVA в алфавитном порядке, как показано ниже Буквы и строчные буквы AaBbCcDdEeFfGg. например, если я поставлю AbaC, верните мне AabC спасибо!!

3 ответов

вы можете сделать это с помощью Arrays.sort , если сначала поместить символы в массив. (Это должен быть массив Character объектов, а не char примитивы, чтобы использовать пользовательский компаратор без учета регистра.)

вы можете попытаться найти коллекций.вроде а затем попробуйте такой:-

что-то вроде этого:-

EDIT: —

для сортировки по алфавиту в строке попробуйте так: —

превратите строку в массив символов, затем сравните значения int каждого символа в сортировке.


[an error occurred while processing the directive]
Карта сайта