logo

Inverser une chaîne en Java

Cet article présente différentes manières d'inverser une chaîne en Java avec des exemples.

Exemples:



chaîne inversée

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Voici quelques faits intéressants sur les classes String et StringBuilder :

  1. Les objets de String sont immuables.
  2. La classe String en Java n'a pas de méthode reverse(), cependant, la classe StringBuilder a une méthode reverse() intégrée.
  3. 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 :

  1. poussez tous les personnages dans la pile.
  2. 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 .