В этом руководстве по 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() с использованием простых массивов и обмена.
Пишите мне свои вопросы в комментариях.