logo

Invertir una cadena a Java

Aquest article tracta diferents maneres d'invertir una cadena a Java amb exemples.

Exemples:

corda-revers



Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

A continuació es mostren alguns fets interessants sobre les classes String i StringBuilder:

  1. Els objectes de String són immutables.
  2. La classe String a Java no té el mètode reverse(), però, la classe StringBuilder té integrat el mètode reverse().
  3. La classe StringBuilder no té el mètode toCharArray(), mentre que la classe String té el mètode 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>

Implementació:

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>

>

>

Sortida

Original word: Geeks Reversed word: skeeG>

Convertint String en bytes: El mètode getBytes() s'utilitza per convertir la cadena d'entrada en bytes[].

Mètode:

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.>

Implementació:

Java




dataformat.format

// 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)); } }>

>

>

Sortida

skeeGrofskeeG>

Utilitzant el mètode reverse() integrat de la classe StringBuilder:

La classe String no té el mètode reverse(), hem de convertir la cadena d'entrada a StringBuilder, que s'aconsegueix mitjançant el mètode append de StringBuilder. Després d'això, imprimiu els caràcters de la cadena invertida escanejant des del primer fins a l'últim índex.

Implementació:

Java




// 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);> >}> }>

>

>

Sortida

skeeG rof skeeG>

Convertint String a matriu de caràcters: L'usuari introdueix la cadena que es vol invertir.

Mètode:

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.>

Implementació:

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]);> >}> }>

>

>

Sortida

skeeGroFskeeG>
  • Converteix la cadena d'entrada en una matriu de caràcters utilitzant toCharArray(): Converteix la cadena d'entrada en una matriu de caràcters utilitzant el mètode toCharArray() integrat de la classe String. A continuació, escanegeu la matriu de caràcters des dels dos costats, és a dir, des de l'índex inicial (esquerra) i des de l'últim índex (dreta) simultàniament.
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.>

Implementació:

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(); } }>

tupla ordenada python
>

>

Sortida

skeeG roF skeeG>
  • Utilitzant l'objecte ArrayList: Converteix la cadena d'entrada a la matriu de caràcters utilitzant el mètode integrat toCharArray(). A continuació, afegiu els caràcters de la matriu a l'objecte ArrayList. Java també ha integrat el mètode reverse() per a la classe Col·leccions. Com que el mètode reverse() de la classe Col·leccions pren un objecte llista, per invertir la llista, passarem l'objecte ArrayList que és un tipus de llista de caràcters.
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.>

Implementació:

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());> >}> }>

>

>

Sortida

skeeG roF skeeG>

Utilitzant StringBuffer:

La classe String no té el mètode reverse(), hem de convertir la cadena d'entrada a StringBuffer, que s'aconsegueix utilitzant el mètode invers de StringBuffer.

Implementació:

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);> >}> }>

>

>

Sortida

skeeG>
  • Invertint la cadena prenent l'entrada de l'usuari-

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);> > >}> }> >

>

>

Sortida

0>

Al codi anterior, bàsicament estem llegint una cadena de l'usuari abans d'iniciar un bucle d'iteració per crear una cadena nova i invertida. La funció charAt de la classe String s'utilitza per recuperar cada caràcter de la cadena original individualment des del final, i l'operador + s'utilitza per concatenar-los en una cadena nova.

Ús de Stack:

La idea de la pila és que només accedirem a l'element superior d'una pila, de manera que inclou 2 passos de la següent manera:

  1. empeny tots els personatges de la pila.
  2. extreu tots els caràcters de la pila i afegiu-los a la cadena temporal.

A continuació es mostra la implementació de l'enfocament anterior.

Java




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>

>

>

Sortida

Reversed string is : skeeG roF skeeG>

Complexitat temporal: O(N) N és la longitud de la corda

Espai auxiliar: O(N) per a la pila

Article relacionat: Diferents mètodes per invertir una cadena en C/C++

Aquest article és contribuït per Sr. Somesh Awasthi .