Comment inverser une chaîne de caractères en Java

Mohammad Irfan 12 octobre 2023
  1. Inverser une chaîne de caractères en utilisant la méthode reverse() en Java
  2. Inverser une chaîne de caractères en utilisant du code personnalisé en Java
  3. Inverser une chaîne de caractères en utilisant la méthode append() en Java
  4. Inverser une chaîne de caractères en utilisant la récursion en Java
  5. Inverser une chaîne de caractères en utilisant Stack en Java
Comment inverser une chaîne de caractères en Java

Ce tutoriel explique comment inverser une chaîne de caractères en Java et donne quelques exemples de codes pour la comprendre.

Il existe plusieurs façons d’inverser une chaîne de caractères, comme les méthodes reverse(), sorted(), et parallelSort(), etc. Voyons les exemples.

Inverser une chaîne de caractères en utilisant la méthode reverse() en Java

Dans cet exemple, nous utilisons la méthode reverse() de la classe StringBuilder pour obtenir la chaîne dans l’ordre inverse, et nous utilisons la méthode toString() pour obtenir l’objet chaîne de l’objet StringBuilder. Voir l’exemple ci-dessous.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder strb = new StringBuilder(str);
    str = strb.reverse().toString();
    System.out.println(str);
  }
}

Production:

DelfStack
kcatSfleD

Inverser une chaîne de caractères en utilisant du code personnalisé en Java

Si vous ne souhaitez pas utiliser de méthodes intégrées, utilisez un code personnalisé qui permutera les caractères de la chaîne de caractères en utilisant une boucle et les rassemblera dans un tableau de caractères qui sera ensuite converti en chaîne de caractères. Voir l’exemple ci-dessous.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    char[] ch = str.toCharArray();
    int begin = 0;
    int end = ch.length - 1;
    char temp;
    while (end > begin) {
      temp = ch[begin];
      ch[begin] = ch[end];
      ch[end] = temp;
      end--;
      begin++;
    }
    str = new String(ch);
    System.out.println(str);
  }
}

Production:

DelfStack
kcatSfleD

Inverser une chaîne de caractères en utilisant la méthode append() en Java

C’est une autre approche pour inverser une chaîne de caractères en Java. Ici, nous utilisons les méthodes charAt() et append() à l’intérieur de la boucle for pour récupérer et stocker les caractères dans l’objet StringBuilder. Voir l’exemple ci-dessous.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder dest = new StringBuilder();
    for (int i = (str.length() - 1); i >= 0; i--) {
      dest.append(str.charAt(i));
    }
    System.out.println(dest);
  }
}

Production:

DelfStac
kcatSfleD

Inverser une chaîne de caractères en utilisant la récursion en Java

La récursivité est une technique dans laquelle une fonction s’appelle encore et encore jusqu’à la condition de base. Nous pouvons utiliser la récursion pour inverser la chaîne de caractères, comme dans l’exemple ci-dessous.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    String reverseStr = reverseIt(str, str.length() - 1);
    System.out.println(reverseStr);
  }
  static String reverseIt(String str, int index) {
    if (index == 0) {
      return str.charAt(0) + "";
    }
    char letter = str.charAt(index);
    return letter + reverseIt(str, index - 1);
  }
}

Production:

DelfStack
kcatSfleD

Inverser une chaîne de caractères en utilisant Stack en Java

Nous pouvons utiliser la classe Stack pour inverser la chaîne de caractères. Nous utilisons la méthode push() de Stack pour rassembler les caractères dans la pile et ensuite utiliser la méthode pop() pour récupérer les caractères stockés dans l’ordre inverse. Voir l’exemple ci-dessous.

import java.util.Stack;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    Stack<Character> stack = new Stack<>();
    for (int i = 0; i < str.length(); i++) {
      stack.push(str.charAt(i));
    }
    StringBuilder strb = new StringBuilder();
    while (!stack.empty()) {
      strb.append(stack.pop());
    }
    System.out.println(strb);
  }
}

Production:

DelfStack
kcatSfleD

Article connexe - Java String