Inverser une chaîne en Java par récursivité - Guide étape par étape
Inverser une chaîne en Java par récursivité
La récursivité est une technique puissante pour résoudre des problèmes qui peuvent être décomposés en sous-problèmes plus petits et similaires. L'inversion d'une chaîne est un exemple classique qui montre comment une fonction récursive simple peut gérer élégamment la manipulation de chaînes.
Pourquoi utiliser la récursivité ?
- Clarté conceptuelle – la fonction reflète naturellement la définition du problème.
- Code minimal – quelques lignes suffisent pour effectuer l'inversion.
- Valeur pédagogique – renforce le motif cas de base / étape récursive.
Implémentation Java
Le programme suivant lit une chaîne, applique une méthode d'inversion récursive, et affiche le résultat.
package com.guru99;
public class InverserChaine {
public static void main(String[] args) {
String maChaine = "Guru99";
String inverse = inverserChaine(maChaine);
System.out.println("La chaîne inversée est : " + inverse);
}
/**
* Inverse récursivement la chaîne donnée.
* @param str la chaîne à inverser
* @return la chaîne inversée
*/
public static String inverserChaine(String str) {
if (str.isEmpty()) {
return ""; // Cas de base : une chaîne vide est sa propre inverse
}
// Récursion sur la sous-chaîne excluant le premier caractère
return inverserChaine(str.substring(1)) + str.charAt(0);
}
}
Sortie typique
La chaîne inversée est : 99uruG
Comprendre le déroulement
La récursivité fonctionne en supprimant répétitivement le premier caractère et en l'ajoutant au résultat de l'inversion de la sous-chaîne restante. Lorsque la sous-chaîne devient vide, la récursivité se déploie, concaténant les caractères dans l'ordre inverse.
Cas limites et performance
- Chaîne vide – gérée par le cas de base, retourne une chaîne vide immédiatement.
- Entrée null – vous pouvez ajouter une vérification null pour éviter une
NullPointerException. - Complexité temporelle – O(n) pour le temps et l'espace dus à la pile de récursivité.
À retenir
L'inversion récursive de chaîne est concise et illustre la pensée algorithmique fondamentale. Pour du code de production où la performance est critique, une approche itérative ou l'utilisation d'un StringBuilder est préférable en raison de la moindre utilisation de la pile.
Java
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les représentations en chaînes dans les enums Java
- Créer un tableau d'objets en Java : Guide étape par étape
- Méthode Java String length() : Comment obtenir la taille d'une chaîne (Exemple)
- Comprendre Java String.charAt() : Syntaxe, type de retour, exceptions et exemple pratique
- Maîtriser la méthode Java String compareTo() : Syntaxe, cas d'usage et exemples pratiques
- Maîtriser Java String.endsWith() : Comment vérifier les suffixes de chaînes avec exemples
- Maîtriser le remplacement de chaînes Java : replace(), replaceAll() et replaceFirst() expliqués
- Convertir un char en String en Java - Exemples pratiques et bonnes pratiques