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

Сортировка строки в алфавитном порядке в Java

Взгляните на различные способы сортировки строки в алфавитном порядке в Java.

1. Обзор

В этом уроке мы покажем, как сортировать Строку по алфавиту.

Может быть много причин, по которым мы хотели бы это сделать – одна из них может быть проверкой, если два слова состоят из одного и того же набора символов. Таким образом, мы проверим, являются ли они анаграммой.

2. Сортировка строки

Внутренне String использует массив символов для работы. Поэтому мы можем использовать метод toCharArray(): char [] , отсортировать массив и создать новую Строку на основе результата:

@Test void givenString_whenSort_thenSorted()

В Java 8 мы можем использовать Stream API для сортировки Строки для нас:

@Test void givenString_whenSortJava8_thenSorted()

Здесь мы используем тот же алгоритм, что и в первом примере, но сортируем массив символов с помощью метода Stream sorted () .

Обратите внимание, что символы отсортированы по кодам ASCII , поэтому заглавные буквы всегда будут встречаться в начале. Итак, если мы хотим отсортировать “abC”, результатом сортировки будет “Cab”.

Чтобы решить эту проблему, нам нужно преобразовать строку с помощью toLowerCase() метода . Мы собираемся сделать это в нашем примере с валидатором анаграмм.

3. Тестирование

Чтобы проверить сортировку, мы построим валидатор анаграмм. Как уже упоминалось, анаграмма возникает, когда два разных слова или предложения состоят из одного и того же набора символов.

Давайте взглянем на наш Валидатор анаграмм класс:

public class AnagramValidator < public static boolean isValid(String text, String anagram) < text = prepare(text); anagram = prepare(anagram); String sortedText = sort(text); String sortedAnagram = sort(anagram); return sortedText.equals(sortedAnagram); >private static String sort(String text) < char[] chars = prepare(text).toCharArray(); Arrays.sort(chars); return new String(chars); >private static String prepare(String text) < return text.toLowerCase() .trim() .replaceAll("\\s+", ""); >>

Теперь мы собираемся использовать наш метод сортировки и проверить, является ли анаграмма действительной:

@Test void givenValidAnagrams_whenSorted_thenEqual()

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

В этой краткой статье мы показали, как Строка может быть отсортирована в алфавитном порядке двумя способами. Кроме того, мы внедрили валидатор анаграмм, в котором использовался метод сортировки строк.

Как обычно, полный код доступен в проекте GitHub .

Читайте ещё по теме:

Источник

Сортировка списка строк в Java

В этом посте мы обсудим, как отсортировать список строк в лексикографическом порядке в Java.

1. Использование Collections.sort() метод

Простое решение для на месте отсортировать список строк в лексикографическом порядке с помощью Collections.sort() метод. Он принимает изменяемый список, размер которого не обязательно должен изменяться.

результат:

[Amazon, Apple, Facebook, Google, Netflix]

The Collections.sort() метод необязательно принимает компаратор, чтобы обеспечить точный контроль над порядком сортировки. Чтобы сделать сравнение между двумя строками нечувствительными к регистру, вы можете использовать String.CASE_INSENSITIVE_ORDER comparator.

результат:

[Amazon, APPLE, Facebook, GOOGLE, Netflix]

2. Использование List.sort() метод

Другой альтернативой сортировке списка строк на месте является метод List.sort() метод, добавленный в спецификацию JDK 1.8. Collections.sort() метод представляет собой оболочку над List.sort() метод. Следовательно, приведенный выше код эквивалентен:

результат:

[Amazon, Apple, Facebook, Google, Netflix]

Вы можете использовать String.CASE_INSENSITIVE_ORDER компаратор, чтобы операция сортировки сравнивала строки, игнорируя их порядок.

результат:

[Amazon, APPLE, Facebook, GOOGLE, Netflix]

3. Использование Stream.sorted() метод

Чтобы создать отсортированную копию списка, вы можете использовать Java 8 Stream. Идея состоит в том, чтобы создать последовательный поток по элементам в списке, отсортировать поток с помощью sorted() и соберите все отсортированные элементы в новый список. Это показано ниже:

Источник

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

В этом уроке мы покажем, как сортировать String по алфавиту.

Может быть много причин, по которым мы хотели бы это сделать — одна из них может быть проверка, если два слова состоят из одного и того же набора символов. Так мы проверим, являются ли они анаграммой.

2. Сортировка строки​

Внутри String использует для работы массив символов. Поэтому мы можем использовать метод toCharArray() : char[] , отсортировать массив и создать новую строку на основе результата:

 @Test   void givenString_whenSort_thenSorted()    String abcd = "bdca";   char[] chars = abcd.toCharArray();    Arrays.sort(chars);   String sorted = new String(chars);    assertThat(sorted).isEqualTo("abcd");   > 

В Java 8 мы можем использовать Stream API для сортировки строки за нас:

 @Test   void givenString_whenSortJava8_thenSorted()    String sorted = "bdca".chars()   .sorted()   .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)   .toString();    assertThat(sorted).isEqualTo("abcd");   > 

Здесь мы используем тот же алгоритм, что и в первом примере, но сортируем массив символов с помощью метода Stream sorted() .

Обратите внимание, что символы сортируются по их кодам ASCII , поэтому в начале всегда будут стоять заглавные буквы. Итак, если мы хотим отсортировать «abC», результатом сортировки будет «Cab».

Чтобы решить эту проблему, нам нужно преобразовать строку с помощью метода toLowerCase() . Мы собираемся сделать это в нашем примере валидатора Anagram.

3. Тестирование​

Чтобы протестировать сортировку, мы создадим валидатор анаграмм. Как уже упоминалось, анаграмма возникает, когда два разных слова или предложения состоят из одного и того же набора символов.

Давайте посмотрим на наш класс AnagramValidator :

 public class AnagramValidator     public static boolean isValid(String text, String anagram)    text = prepare(text);   anagram = prepare(anagram);    String sortedText = sort(text);   String sortedAnagram = sort(anagram);    return sortedText.equals(sortedAnagram);   >    private static String sort(String text)    char[] chars = prepare(text).toCharArray();    Arrays.sort(chars);   return new String(chars);   >    private static String prepare(String text)    return text.toLowerCase()   .trim()   .replaceAll("\\s+", "");   >   > 

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

 @Test   void givenValidAnagrams_whenSorted_thenEqual()    boolean isValidAnagram = AnagramValidator.isValid("Avida Dollars", "Salvador Dali");    assertTrue(isValidAnagram);   > 

4. Вывод​

В этой быстрой статье мы показали, как String можно отсортировать в алфавитном порядке двумя способами. Кроме того, мы внедрили валидатор анаграмм, который использует метод сортировки строк.

Как обычно, полный код доступен на проекте GitHub .

Источник

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

В этом руководстве мы покажем, как отсортироватьString по алфавиту.

Может быть множество причин, по которым мы хотели бы это сделать — одна из них может быть проверкой, если два слова состоят из одного и того же набора символов. Таким образом, мы проверим, являются ли они анаграммой.

2. Сортировка строки

ВнутреннеString использует массив символов для работы. Следовательно, мы можем использоватьtoCharArray() : char[] method, sort the array and create a new String based on the result:

@Test void givenString_whenSort_thenSorted()

В Java 8 мы можем использовать APIStream для сортировкиString для нас:

@Test void givenString_whenSortJava8_thenSorted()

Здесь мы используем тот же алгоритм, что и в первом примере, но сортируем массив символов с помощью методаStream sorted().

Обратите внимание, что это символыsorted by its ASCII codes, поэтому заглавные буквы всегда будут в начале. Итак, если мы хотим отсортировать «abC», результатом сортировки будет «Cab».

Для ее решения нам нужноtransform the string with toLowerCase() method. Мы собираемся сделать это в нашем примере с валидатором Anagram.

3. тестирование

Чтобы протестировать сортировку, мы построим валидатор анаграмм. Как уже упоминалось, анаграмма возникает, когда два разных слова или предложения составлены из одного и того же набора символов.

Давайте посмотрим на наш классAnagramValidator:

public class AnagramValidator < public static boolean isValid(String text, String anagram) < text = prepare(text); anagram = prepare(anagram); String sortedText = sort(text); String sortedAnagram = sort(anagram); return sortedText.equals(sortedAnagram); >private static String sort(String text) < char[] chars = prepare(text).toCharArray(); Arrays.sort(chars); return new String(chars); >private static String prepare(String text) < return text.toLowerCase() .trim() .replaceAll("\\s+", ""); >>

Теперь мы собираемся использовать наш метод сортировки и проверить, действительна ли анаграмма:

@Test void givenValidAnagrams_whenSorted_thenEqual()

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

В этой быстрой статье мы показали, какString можно отсортировать в алфавитном порядке двумя способами. Кроме того, мы реализовали валидатор анаграмм, в котором использовался метод сортировки строк.

Как обычно, полный код доступен наGithub project.

Источник

Sort String Array in Java

Sort String Array in Java

Sorting is a very important feature in programming as it sets the different elements of an array in the required order. Generally, people use alphabetical order or increasing or decreasing orders. Sorting is generally done to convert a raw and unorganized form of data into proper and organized order for making it meaningful for the human brain. There are two methods for performing sorting string array. The first method is called custom sorting or user-defined logic sorting and the second method is called natural sorting or Array.sort() sorting. In this article both the methods are explained using multiple examples and their working. In this topic, we are going to learn about Sort String Array in Java.

Web development, programming languages, Software testing & others

Methods and Examples of Sorting String Array in Java

Here are the following examples and methods mentioned below

1. Using User-Defined Logic or custom sorting

Sorting can be done by comparing each and every element individually with the rest of the elements. In the first example, the same process is performed. There are two loops used, the repetitions while performing comparison is avoided by the inner loop. When the condition (favouritefood[a].compareTo(favouritefood[b])>0) results true than 0,now the program performs the swapping and array sorting is done. Similarly, all of the elements of the array are checked using the condition and the sorting is completed. In this example, the elements are sorted in an alphabetical order using user-defined logic or custom sorting.

Example #1
import java.util.Arrays; public class Sortingexample1 < public static void main( String args[]) < String[] favouritefood = ; System.out.print(" Rahul favourite foods are: \n " ); int length = favouritefood.length; for(int a = 0 ; a0) < String virtual = favouritefood[a]; favouritefood[a] = favouritefood[b]; favouritefood[b] = virtual; >> > System.out.println( Arrays.toString( favouritefood )); > >

Sort String Array in Java output 1

Example #2

This example has been performed using three simple steps. Firstly, using loop we have to convert the input string into a character array. Now, Arrays.sort(array1, new Comparator () is used to sort the character array. Here the compare() method is used according to the behavior of the custom sorting. Now, use the StringBuilder to create a string from the character array.

import java.util.Arrays; import java.util.Comparator; public class Sortingexample2 < public static String sortString( String initialstringused ) < System.out.println( " Mixed kinda character string used \n " ); Character array1[] = new Character[ initialstringused.length() ]; for (int a = 0 ; a < initialstringused.length() ; a++) < array1[a] = initialstringused.charAt(a); >System.out.println( " We use character string here \n " ); Arrays.sort( array1, new Comparator() < @Override public int compare(Character FirstInput, Character SecondInput) < return Character.compare(Character.toUpperCase(FirstInput), Character.toUpperCase(SecondInput)); >>); StringBuilder b = new StringBuilder(array1.length); for ( Character c : array1 ) b.append( c.charValue() ); return b.toString(); > public static void main(String[] args) < String initialstringused = " \n Biryani is loved by Rahul \n "; String stringwegetinreturn = sortString( initialstringused ); System.out.println( " Got an output as : \n " + stringwegetinreturn ); System.out.println( " \n Initial sentence entered was : \n " + initialstringused ); >>

Sort String Array in Java output 2

2. Using Arrays.sort() or natural sorting

Natural sorting is done in three steps. Firstly, toCharArray() method is applied to the input string for creating a character array of the input string. Now, Arrays.sort(char c[]) method is used to sort the character array. Now string class constructor is used for creating a sorted string from the character array.

Example #1
import java.util.Arrays; public class Sortingexample3 < public static String sortString( String initialstringused) < char sameArray[] = initialstringused.toCharArray(); System.out.println( " Mixed kinda character string used \n " ); Arrays.sort( sameArray); System.out.println( " We use character string here \n " ); return new String(sameArray); >public static void main(String[] args) < String initialstringused = " \n Choley Bhature is loved by Rahul \n "; String stringwegetinreturn = sortString( initialstringused ); System.out.println( "Input String : " + initialstringused ); System.out.println("Output String : " + stringwegetinreturn ); >>

output 3

Example #2
import java.util.Arrays; public class Sortingexample4 < public static void main(String args[]) < String[] favouritefood = ; System.out.print(" \n Actual food list entered: \n " ); System.out.println(Arrays.toString(favouritefood)); System.out.print(" \n Rahul favourite foods are: \n " ); Arrays.sort(favouritefood); System.out.println(Arrays.toString(favouritefood)); > >

output 4

Conclusion

On the basis of the above article, we understood the sort string array in Java. Sort String Array has two methods and both the methods are explained in the article using multiple examples. The examples will help the beginners in understanding the implementation of Sort String Array in a Java code to get the required results.

This is a guide to Sort String Array in Java. Here we discuss the Sorting String Array in Java using various methods, explained with examples. You may also have a look at the following articles to learn more –

500+ Hours of HD Videos
15 Learning Paths
120+ Courses
Verifiable Certificate of Completion
Lifetime Access

1000+ Hours of HD Videos
43 Learning Paths
250+ Courses
Verifiable Certificate of Completion
Lifetime Access

1500+ Hour of HD Videos
80 Learning Paths
360+ Courses
Verifiable Certificate of Completion
Lifetime Access

3000+ Hours of HD Videos
149 Learning Paths
600+ Courses
Verifiable Certificate of Completion
Lifetime Access

All in One Software Development Bundle 3000+ Hours of HD Videos | 149 Learning Paths | 600+ Courses | Verifiable Certificate of Completion | Lifetime Access

Financial Analyst Masters Training Program 1000+ Hours of HD Videos | 43 Learning Paths | 250+ Courses | Verifiable Certificate of Completion | Lifetime Access

Источник

Читайте также:  Функция удаления элементов массива php
Оцените статью