Comment inverser une chaîne de caractères en Java
-
Inverser une chaîne de caractères en utilisant la méthode
reverse()
en Java - Inverser une chaîne de caractères en utilisant du code personnalisé en Java
-
Inverser une chaîne de caractères en utilisant la méthode
append()
en Java - Inverser une chaîne de caractères en utilisant la récursion en Java
-
Inverser une chaîne de caractères en utilisant
Stack
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