Inverser une chaîne de manière récursive en Java

Rashmi Patidar 12 octobre 2023
Inverser une chaîne de manière récursive en Java

La récursivité est le processus qui appelle la fonction elle-même à plusieurs reprises jusqu’à ce qu’une condition de rupture réponde aux critères. Il permet à l’utilisateur d’appeler la fonction elle-même à partir de lui-même. Voici quelques conditions à remplir pour rendre une fonction récursive :

  1. La fonction doit s’appeler à partir de la même fonction.
  2. Une condition de terminaison est nécessaire pour empêcher la boucle récursive d’être appelée à plusieurs reprises.
  3. La récursivité utilise la structure de données Stack dans son cours d’action. Il stocke les variables et les appels de fonction dans son stockage.

Vous trouverez ci-dessous le bloc de code pour inverser une chaîne à l’aide de la récursion en Java.

import java.util.Scanner;

public class StringReverseUsingRecursion {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter any String :");
    String str = scanner.nextLine();
    System.out.println("The reverse of the String is : " + recursiveReverse(str));
  }

  static String recursiveReverse(String input) {
    if ((input == null) || (input.length() <= 1))
      return input;
    else {
      return recursiveReverse(input.substring(1)) + input.charAt(0);
    }
  }
}

Dans le bloc de code ci-dessus, la classe contient une méthode statique et la méthode main. La méthode recursiveReverse() est la fonction récursive statique qui inverse une chaîne en utilisant la récursivité. Il prend un paramètre d’entrée et renvoie également une valeur String.

Dans la méthode main, la classe Scanner est instanciée à l’aide du mot-clé new. Le constructeur de la classe Scanner prend le flux d’entrée comme paramètre et produit la chaîne d’entrée après l’analyse à partir de la source d’entrée.

Il convertit également le flux d’octets dans le jeu de caractères par défaut qui est le jeu standard UTF-8. Le constructeur lève IllegalArgumentException s’il ne parvient pas à convertir les données dans le jeu de caractères par défaut.

Le système est un package de classe java.lang, il représente les méthodes et variables d’instance de flux d’entrée standard. In est la variable d’instance du flux d’entrée qui est ouvert et prêt à fournir des données d’entrée.

Ce flux utilise l’entrée clavier ou une autre source d’entrée spécifiée par l’utilisateur.

La fonction nextLine() renvoie la ligne courante, à l’exclusion du séparateur de ligne à la fin. Par conséquent, cela stockera une ligne d’entrée définie par l’utilisateur dans la variable str. La chaîne est ensuite transmise à la méthode récursive statique.

La condition de fin de la méthode statique recursiveReverse() consiste à vérifier que l’entrée est nulle ou inférieure à un, puis à renvoyer la chaîne d’entrée elle-même.

Si la condition ne satisfait pas, il appelle à nouveau la fonction elle-même mais avec la sous-chaîne à l’exclusion du caractère zéro. La fonction substring() crée une sous-chaîne de la chaîne réelle et transmet à nouveau ce plus petit flux à la même méthode.

Par conséquent, il est appelé de manière itérative et, à la fin, commence à renvoyer des caractères en réponse.

Production :

Enter any String :
Hello
The reverse of the String is : olleH.
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Article connexe - Java String