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

В этом руководстве по Java обсуждаются различные подходы к сортировке строки по алфавиту. При сортировке по алфавиту мы по сути сортируем символы строки в алфавитном порядке.

1. Сортировка строки с использованием потоков Java 8

Метод Stream.sorted() сортирует элементы потока в естественном порядке. В случае строк естественным порядком является алфавитный порядок. Поэтому нам нужно выполнить следующие псевдошаги:

  • Создать поток символов из строки
  • Сортировать поток
  • Присоединяйтесь к потоку, чтобы получить новую отсортированную строку

Следующая программа на Java демонстрирует сортировку символов строки с использованием API Stream.sorted().

String string = "adcbgekhs";String sortedString = Stream.of( string.split("") ).sorted().collect(Collectors.joining());System.out.println(sortedString); // abcdeghks

2. Сортировка строки с помощью Arrays.sort()

Arrays.sort() также делает то же самое, что и Stream.sort(). Поэтому шаги сортировки строки остаются теми же в этом решении. На этот раз мы создаем новый массив символов, сортируем массив, а затем объединяем массив для получения отсортированной строки.

String string = "adcbgekhs";//Convert string to char arraychar[] chars = string.toCharArray();//Sort char arrayArrays.sort(chars);//Convert char array to stringString sortedString = String.valueOf(chars);System.out.println(sortedChars); // abcdeghks

3. Без использования метода sort()

Если мы не хотим использовать встроенные API Java, мы можем использовать массивы Java для перебора символов строки и сортировки их в цикле.

  • Преобразовать строку в массив символов с помощью метода toCharArray()
  • Пройдитесь по элементам массива и проверьте наличие перестановки элементов массива, сравнивая значение кода
  • Распечатать массив после завершения цикла
String string = "adcbgekhs";String sortedString = sortWithArray(string);System.out.println(sortedString);//The custom sorting function using arraysstatic String sortWithArray(String str) {char arr[] = str.toCharArray();char temp;int i = 0;while(i < arr.length) {int j = i + 1;while(j < arr.length) {if(arr[j] < arr[i]) {temp = arr[i];arr[i] = arr[j];arr[j] = temp;}j += 1;}i += 1;}return String.copyValueOf(arr);}

4. Заключение

В этом руководстве по Java обсуждаются различные способы сортировки строки по алфавиту с примерами. Мы научились использовать методы Stream.sort(), Arrays.sort() и пользовательский метод sort() с использованием простых массивов и обмена.

Пишите мне свои вопросы в комментариях.

Исходный код на Github

Прокрутить вверх