Introduction
En Java, il n'y a pas de méthode unique dans la classe String à des fins de tri. Cependant, nous pouvons utiliser le fait qu'un tableau de caractères peut être facilement trié à l'aide de divers algorithmes. Il existe plusieurs façons de trier des chaînes de caractères en Java, telles que l'utilisation de Arrays.sort(), de Comparator dans Arrays.sort(), ou des algorithmes de tri couramment utilisés comme Selection Sort et Bubble Sort. Dans ce laboratoire, nous allons explorer comment trier une chaîne de caractères en Java à l'aide de la méthode Arrays.sort().
Écrire le code
Dans cette étape, nous allons écrire le programme Java pour trier une chaîne de caractères à l'aide de la fonction Arrays.sort(). Le code prend une chaîne de caractères d'entrée, la convertit en un tableau de caractères, trie le tableau à l'aide de la fonction Arrays.sort() puis le convertit à nouveau en une chaîne de caractères.
import java.util.Arrays;
public class SortString {
public static void main(String[] args) {
String originalString = "The quick brown fox jumps over the lazy dog";
String sortedString = "";
char[] tempArr = originalString.toCharArray(); // convertit la chaîne en un tableau de caractères
Arrays.sort(tempArr); // trie le tableau de caractères
sortedString = new String(tempArr); // convertit le tableau de caractères trié en une chaîne de caractères
System.out.println("Chaîne d'origine : " + originalString);
System.out.println("Chaîne triée : " + sortedString);
}
}
Compiler et exécuter le code
Ouvrez le terminal et accédez au répertoire ~/project. Compilez le programme Java à l'aide de la commande suivante :
javac SortString.java
Exécutez le programme Java à l'aide de la commande suivante :
java SortString
La sortie du programme sera la suivante :
Chaîne d'origine : The quick brown fox jumps over the lazy dog
Chaîne triée : Tabcdeeefghhijklmnoooopqrrstuuvwxyz
Implémenter un tri insensible à la casse
En Java, la méthode Arrays.sort() compare les caractères en utilisant leurs valeurs Unicode. Pour trier une chaîne de caractères sans tenir compte de la casse, nous pouvons modifier l'algorithme de tri en utilisant un Comparator. Dans cette étape, nous allons modifier notre code Java précédent pour trier la chaîne de caractères sans tenir compte de la casse.
import java.util.Arrays;
import java.util.Comparator;
public class SortString {
public static void main(String[] args) {
String originalString = "The quick brown fox jumps over the lazy dog";
String sortedString = "";
Character[] tempArr = toCharacterArray(originalString.toLowerCase()); // convertit la chaîne en minuscules en un tableau de caractères
Arrays.sort(tempArr, new Comparator<Character>() { // trie avec un comparateur insensible à la casse
@Override
public int compare(Character c1, Character c2) {
return c1.compareTo(c2);
}
});
StringBuilder sb = new StringBuilder(tempArr.length); // crée un objet StringBuilder
for (Character c : tempArr) {
sb.append(c.charValue()); // ajoute les caractères triés à l'objet StringBuilder
}
sortedString = sb.toString(); // convertit l'objet StringBuilder en une chaîne de caractères
System.out.println("Chaîne d'origine : " + originalString);
System.out.println("Chaîne triée : " + sortedString);
}
// méthode pour convertir une chaîne en un tableau de caractères
private static Character[] toCharacterArray(String str) {
Character[] arr = new Character[str.length()];
for (int i = 0; i < str.length(); i++) {
arr[i] = str.charAt(i);
}
return arr;
}
}
Compiler et exécuter le code mis à jour
Compilez le programme Java mis à jour à l'aide de la commande suivante :
javac SortString.java
Exécutez le programme Java à l'aide de la commande suivante :
java SortString
La sortie du programme sera la suivante :
Chaîne d'origine : The quick brown fox jumps over the lazy dog
Chaîne triée : abcdeeefghhijklmnoooopqrrsttuuvwxyz
Implémenter le tri en utilisant la méthode traditionnelle
Dans cette étape, nous allons implémenter le tri sur un tableau de caractères en utilisant une méthode traditionnelle avec des boucles imbriquées. L'algorithme comparera chaque caractère avec les caractères situés à sa droite et échangera les caractères si le caractère de droite est plus petit que le caractère actuel.
import java.util.Arrays;
public class SortString {
public static void main(String[] args) {
String originalString = "The quick brown fox jumps over the lazy dog";
String sortedString = "";
char[] tempArr = originalString.toCharArray(); // convertit la chaîne en un tableau de caractères
int n = tempArr.length;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (tempArr[i] > tempArr[j]) {
char temp = tempArr[i];
tempArr[i] = tempArr[j];
tempArr[j] = temp;
}
}
}
sortedString = new String(tempArr); // convertit le tableau de caractères trié en une chaîne de caractères
System.out.println("Chaîne d'origine : " + originalString);
System.out.println("Chaîne triée : " + sortedString);
}
}
Compiler et exécuter le code mis à jour
Compilez le programme Java mis à jour à l'aide de la commande précédente :
javac SortString.java
Exécutez le programme Java à l'aide de la commande suivante :
java SortString
La sortie du programme sera la suivante :
Chaîne d'origine : The quick brown fox jumps over the lazy dog
Chaîne triée : Tabcdeeefghhijklmnoooopqrrstuuvwxyz
Résumé
Dans ce laboratoire, nous avons appris à trier une chaîne de caractères en Java à l'aide de la méthode Arrays.sort(). Nous avons également appris à implémenter un tri insensible à la casse à l'aide de Comparator et un tri traditionnel à l'aide de boucles imbriquées.



