Classificar uma string em Java

Abdul Mateen 12 outubro 2023
  1. Utilize Array.sort() Método para ordenar uma única string em Java
  2. Utilize o for Loop para ordenar uma única string em Java
Classificar uma string em Java

Este artigo tutorial demonstra como ordenar uma única string em Java.

A ordem mais comum utilizada é por ordem alfabética. A ordenação é o processo de conversão de dados para um formato padrão e criação de um formato legível por humanos.

Há duas formas de ordenar uma única string em Java, como se segue.

  • Método Array.sort()
  • Método definido pelo usuário

Utilize Array.sort() Método para ordenar uma única string em Java

Uma string é imutável em Java, o que significa que a string não pode ser alterada na memória se um objecto de string tiver sido criado uma vez. Também não podemos aceder a um único carácter de uma string.

Podemos utilizar o método Array.sort() para ordenar uma única string em Java. A classe string não tem método de ordenação. Ao ordenar a string, a ideia principal é converter a string dada para um array de caracteres utilizando o método toCharArray(). E depois, utilizamos o método Arrays.sort() para ordenar esse array.

O exemplo de ordenação de uma única string utilizando o método Arrays.sort() é o seguinte.

import java.util.Arrays;

public class StringSorting {
  public static void main(String args[]) {
    String STR = "java";
    char[] StringtoChar = STR.toCharArray();
    Arrays.sort(StringtoChar);
    String SortedString = new String(StringtoChar);
    System.out.println("The Unsorted String is : " + STR);
    System.out.println("The Sorted String is : " + SortedString);
  }
}

Resultado:

The Unsorted String is : java
The Sorted String is : aajv

No código acima, criamos uma string que armazena java nele. Depois de a converter num array de caracteres utilizando o método toCharArray(), ordenamos a matriz de caracteres convertida utilizando Arrays.sort, e digitamos a matriz ordenada para uma string.

Utilize o for Loop para ordenar uma única string em Java

Podemos ordenar um único array utilizando o laço for e comparar o elemento com o outro em cada iteração. Mas como sabemos, não podemos aceder a um único carácter numa string para converter essa string num array de caracteres. Depois iteramos a matriz de caracteres utilizando dois loops para comparar cada elemento com o outro elemento.

O exemplo de ordenação de uma única string utilizando o método User-Defined é o seguinte.

import java.util.Arrays;

public class StringSorting {
  public static void main(String args[]) {
    String STR = "java";
    char[] StringtoChar = STR.toCharArray();
    for (int i = 0; i < (StringtoChar.length - 1); i++) {
      for (int j = i + 1; j > 0; j--) {
        if (StringtoChar[j] < StringtoChar[j - 1]) {
          char Temp = StringtoChar[j - 1];
          StringtoChar[j - 1] = StringtoChar[j];
          StringtoChar[j] = Temp;
        }
      }
    }
    String SortedString = new String(StringtoChar);
    System.out.println("The Unsorted String is : " + STR);
    System.out.println("The Sorted String is : " + SortedString);
  }
}

Resultado:

The Unsorted String is : java
The Sorted String is : aajv

No código acima, criamos uma string que armazena java nele.

Utilizamos aqui dois loops for. O primeiro laço é para iterar o array de caracteres, e o segundo laço evita a repetição em comparação. Se a condição (StringtoChar[j]<StringtoChar[j-1]) for verdadeira dentro do segundo laço, efectua a troca e ordena o array.

Artigo relacionado - Java String