Cet article présente différentes manières d'inverser une chaîne en Java avec des exemples.
Exemples:
Prerequisite: String vs StringBuilder vs StringBuffer in Java>
Voici quelques faits intéressants sur les classes String et StringBuilder :
- Les objets de String sont immuables.
- La classe String en Java n'a pas de méthode reverse(), cependant, la classe StringBuilder a une méthode reverse() intégrée.
- La classe StringBuilder n'a pas de méthode toCharArray(), tandis que la classe String a la méthode toCharArray().
1. The idea is to traverse the length of the string 2. Extract each character while traversing 3. Add each character in front of the existing string>
Mise en œuvre:
Java
// java program to reverse a word> import> java.io.*;> import> java.util.Scanner;> class> GFG {> > public> static> void> main (String[] args) {> > > String str=> 'Geeks'> , nstr=> ''> ;> > char> ch;> > > System.out.print(> 'Original word: '> );> > System.out.println(> 'Geeks'> );> //Example word> > > for> (> int> i=> 0> ; i { ch= str.charAt(i); //extracts each character nstr= ch+nstr; //adds each character in front of the existing string } System.out.println('Reversed word: '+ nstr); } } //Contributed by Tiyasa> |
>
erreur : impossible de trouver ou de charger la classe principale
>Sortir
Original word: Geeks Reversed word: skeeG>
Conversion d'une chaîne en octets : La méthode getBytes() est utilisée pour convertir la chaîne d'entrée en octets[].
Méthode:
1. Create a temporary byte[] of length equal to the length of the input string. 2. Store the bytes (which we get by using getBytes() method) in reverse order into the temporary byte[] . 3. Create a new String abject using byte[] to store result.>
Mise en œuvre:
Java
// Java program to ReverseString using ByteArray.> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> > public> static> void> main(String[] args)> > {> > String input => 'techcodeview.com'> ;> > // getBytes() method to convert string> > // into bytes[].> > byte> [] strAsByteArray = input.getBytes();> > byte> [] result => new> byte> [strAsByteArray.length];> > // Store result in reverse order into the> > // result byte[]> > for> (> int> i => 0> ; i result[i] = strAsByteArray[strAsByteArray.length - i - 1]; System.out.println(new String(result)); } }> |
>
>Sortir
skeeGrofskeeG>
Utilisation de la méthode reverse() intégrée de la classe StringBuilder :
La classe String n'a pas de méthode reverse(), nous devons convertir la chaîne d'entrée en StringBuilder, ce qui est réalisé en utilisant la méthode append de StringBuilder. Après cela, imprimez les caractères de la chaîne inversée en numérisant du premier au dernier index.
Mise en œuvre:
Java
programmation stdin c
// Java program to ReverseString using StringBuilder> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> > public> static> void> main(String[] args)> > {> > String input => 'Geeks for Geeks'> ;> > StringBuilder input1 => new> StringBuilder();> > // append a string into StringBuilder input1> > input1.append(input);> > // reverse StringBuilder input1> > input1.reverse();> > // print reversed String> > System.out.println(input1);> > }> }> |
>
>Sortir
skeeG rof skeeG>
Conversion d'une chaîne en tableau de caractères : L'utilisateur saisit la chaîne à inverser.
Méthode:
1. First, convert String to character array by using the built in Java String class method toCharArray(). 2. Then, scan the string from end to start, and print the character one by one.>
Mise en œuvre:
Java
// Java program to Reverse a String by> // converting string to characters one> // by one> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> > public> static> void> main(String[] args)> > {> > String input => 'GeeksForGeeks'> ;> > // convert String to character array> > // by using toCharArray> > char> [] try1 = input.toCharArray();> > for> (> int> i = try1.length -> 1> ; i>=> 0> ; i--)> > System.out.print(try1[i]);> > }> }> |
>
>Sortir
skeeGroFskeeG>
- Convertissez la chaîne d'entrée en tableau de caractères à l'aide de toCharArray() : Convertissez la chaîne d'entrée en tableau de caractères à l'aide de la méthode toCharArray() intégrée de la classe String. Ensuite, scannez le tableau de caractères des deux côtés, c'est-à-dire simultanément à partir de l'index de départ (à gauche) et du dernier index (à droite).
1. Set the left index equal to 0 and right index equal to the length of the string -1. 2. Swap the characters of the start index scanning with the last index scanning one by one. After that, increase the left index by 1 (left++) and decrease the right by 1 i.e., (right--) to move on to the next characters in the character array . 3. Continue till left is less than or equal to the right.>
Mise en œuvre:
Java
// Java program to Reverse a String using swapping> // of variables> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> > public> static> void> main(String[] args)> > {> > String input => 'Geeks For Geeks'> ;> > char> [] temparray = input.toCharArray();> > int> left, right => 0> ;> > right = temparray.length -> 1> ;> > for> (left => 0> ; left // Swap values of left and right char temp = temparray[left]; temparray[left] = temparray[right]; temparray[right] = temp; } for (char c : temparray) System.out.print(c); System.out.println(); } }> |
>
>Sortir
skeeG roF skeeG>
- Utilisation de l'objet ArrayList : Convertissez la chaîne d'entrée en tableau de caractères à l'aide de la méthode intégrée toCharArray(). Ensuite, ajoutez les caractères du tableau dans l'objet ArrayList. Java a également intégré la méthode reverse() pour la classe Collections. Puisque la méthode reverse() de la classe Collections prend un objet liste, pour inverser la liste, nous passerons l’objet ArrayList qui est un type de liste de caractères.
1. We copy String contents to an object of ArrayList. 1. We create a ListIterator object by using the listIterator() method on the ArrayList object. 2. ListIterator object is used to iterate over the list. 3. ListIterator object helps us to iterate over the reversed list and print it one by one to the output screen.>
Mise en œuvre:
Java
// Java program to Reverse a String using ListIterator> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> > public> static> void> main(String[] args)> > {> > String input => 'Geeks For Geeks'> ;> > char> [] hello = input.toCharArray();> > List trial1 => new> ArrayList();> > for> (> char> c : hello)> > trial1.add(c);> > Collections.reverse(trial1);> > ListIterator li = trial1.listIterator();> > while> (li.hasNext())> > System.out.print(li.next());> > }> }> |
exécuter des scripts sous Linux
>
>Sortir
skeeG roF skeeG>
Utilisation de StringBuffer :
La classe String n'a pas de méthode reverse(), nous devons convertir la chaîne d'entrée en StringBuffer, ce qui est obtenu en utilisant la méthode reverse de StringBuffer.
Mise en œuvre:
Java
// Java program to demonstrate conversion from> // String to StringBuffer and reverse of string> import> java.lang.*;> import> java.io.*;> import> java.util.*;> public> class> Test {> > public> static> void> main(String[] args)> > {> > String str => 'Geeks'> ;> > // conversion from String object to StringBuffer> > StringBuffer sbr => new> StringBuffer(str);> > // To reverse the string> > sbr.reverse();> > System.out.println(sbr);> > }> }> |
>
>Sortir
skeeG>
- Inverser la chaîne en prenant l'entrée de l'utilisateur
Java
/*package whatever //do not write package name here */> import> java.io.*;> import> java.util.Scanner;> class> GFG {> > public> static> void> main (String[] args) {> > Scanner scanner => new> Scanner(System.in);> > String Str = scanner.nextLine();> > char> [] arr = Str.toCharArray();> > > String rev => ''> ;> > > for> (> int> i = Str.length() -> 1> ; i>=> 0> ; i--)> > {> > rev = rev + Str.charAt(i);> > }> > > System.out.println(rev);> > > }> }> > |
>
>Sortir
0>
Dans le code ci-dessus, nous lisons essentiellement une chaîne de l'utilisateur avant de démarrer une boucle d'itération pour créer une nouvelle chaîne inversée. La fonction charAt de la classe String est utilisée pour récupérer chaque caractère de la chaîne d'origine individuellement à partir de la fin, et l'opérateur + est utilisé pour les concaténer dans une nouvelle chaîne.
Utilisation de la pile :
L'idée de la pile est que nous n'accéderons qu'à l'élément supérieur d'une pile. Elle comprend donc 2 étapes comme suit :
- poussez tous les personnages dans la pile.
- extrayez tous les caractères de la pile et ajoutez-les à la chaîne temporaire.
Vous trouverez ci-dessous la mise en œuvre de l’approche ci-dessus.
Java
dérivé partiel du latex
import> java.util.*;> class> GFG {> > public> static> void> main(String[] args) {> > > String s=> 'Geeks For Geeks'> ;> > > //initializing a stack of type char> > Stack stack=> new> Stack();> > > for> (> char> c:s.toCharArray())> > {> > //pushing all the characters> > stack.push(c);> > }> > > String temp=> ''> ;> > > while> (!stack.isEmpty())> > {> > //popping all the chars and appending to temp> > temp+=stack.pop();> > }> > > System.out.println(> 'Reversed string is : '> +temp);> > > }> }> //This code is contributed by aeroabrar_31> |
>
>Sortir
Reversed string is : skeeG roF skeeG>
Complexité temporelle : O(N) N est la longueur de la chaîne
Espace auxiliaire : O(N) pour la pile
Article associé: Différentes méthodes pour inverser une chaîne en C/C++
Cet article est rédigé par M. Somesh Awasthi .