logo

Kehren Sie eine Zeichenfolge in Java um

In diesem Artikel werden verschiedene Möglichkeiten zum Umkehren einer Zeichenfolge in Java anhand von Beispielen erläutert.

Beispiele:



String-Reverse

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Im Folgenden finden Sie einige interessante Fakten zu String- und StringBuilder-Klassen:

  1. Objekte von String sind unveränderlich.
  2. Die String-Klasse in Java verfügt nicht über die Methode reverse(), die StringBuilder-Klasse verfügt jedoch über eine integrierte Methode reverse().
  3. Die StringBuilder-Klasse verfügt nicht über die Methode toCharArray(), während die String-Klasse über die Methode toCharArray() verfügt.
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>

Implementierung:



Java




Clusterbildung



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

>

>

Ausgabe

Original word: Geeks Reversed word: skeeG>

String in Bytes umwandeln: Die Methode getBytes() wird verwendet, um die Eingabezeichenfolge in Bytes[] umzuwandeln.

Methode:

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

Implementierung:

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

>

>

Ausgabe

skeeGrofskeeG>

Verwendung der integrierten Methode reverse() der Klasse StringBuilder:

Die String-Klasse verfügt nicht über die Methode reverse(). Wir müssen die Eingabezeichenfolge in StringBuilder konvertieren, was durch die Verwendung der Append-Methode von StringBuilder erreicht wird. Drucken Sie anschließend die Zeichen der umgekehrten Zeichenfolge aus, indem Sie vom ersten bis zum letzten Index scannen.

Implementierung:

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

>

>

Ausgabe

skeeG rof skeeG>

Konvertieren eines Strings in ein Zeichenarray: Der Benutzer gibt die Zeichenfolge ein, die umgekehrt werden soll.

Methode:

Was ist Export unter Linux?
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.>

Implementierung:

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

>

>

Ausgabe

skeeGroFskeeG>
  • Konvertieren Sie die Eingabezeichenfolge mithilfe von toCharArray() in ein Zeichenarray: Konvertieren Sie die Eingabezeichenfolge in ein Zeichenarray, indem Sie die integrierte Methode toCharArray() der String-Klasse verwenden. Scannen Sie dann das Zeichenarray von beiden Seiten, d. h. gleichzeitig vom Startindex (links) und vom letzten Index (rechts).
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.>

Implementierung:

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

>

>

Ausgabe

skeeG roF skeeG>
  • Verwenden des ArrayList-Objekts: Konvertieren Sie die Eingabezeichenfolge mithilfe der integrierten Methode toCharArray() in das Zeichenarray. Fügen Sie dann die Zeichen des Arrays zum ArrayList-Objekt hinzu. Java verfügt außerdem über eine integrierte Methode reverse() für die Collections-Klasse. Da die Methode reverse() der Collections-Klasse ein Listenobjekt benötigt, übergeben wir zum Umkehren der Liste das ArrayList-Objekt, bei dem es sich um eine Art Zeichenliste handelt.
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.>

Implementierung:

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

>

>

Ausgabe

skeeG roF skeeG>

Verwendung von StringBuffer:

Die String-Klasse verfügt nicht über die Methode reverse(). Wir müssen die Eingabezeichenfolge in StringBuffer konvertieren, was durch die Verwendung der umgekehrten Methode von StringBuffer erreicht wird.

Implementierung:

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

>

>

Ausgabe

skeeG>
  • String umkehren, indem Eingaben vom Benutzer übernommen werden.

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

Sammlung Java
>

>

Ausgabe

0>

Im obigen Code lesen wir im Wesentlichen einen String vom Benutzer, bevor wir eine Iterationsschleife starten, um einen neuen, invertierten String zu erstellen. Die charAt-Funktion der String-Klasse wird verwendet, um jedes Zeichen des ursprünglichen Strings einzeln vom Ende abzurufen, und der +-Operator wird verwendet, um sie zu einem neuen String zu verketten.

Stack verwenden:

Die Idee des Stapels besteht darin, dass wir nur auf das oberste Element eines Stapels zugreifen, sodass er die folgenden zwei Schritte umfasst:

  1. Schiebe alle Charaktere im Stapel.
  2. Entfernen Sie alle Zeichen vom Stapel und hängen Sie sie an die temporäre Zeichenfolge an.

Nachfolgend finden Sie die Umsetzung des oben genannten Ansatzes.

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>

>

>

Ausgabe

Reversed string is : skeeG roF skeeG>

Zeitkomplexität: O(N) N ist die Länge der Zeichenfolge

Hilfsraum: O(N) für Stapel

Verwandter Artikel: Verschiedene Methoden zum Umkehren einer Zeichenfolge in C/C++

Dieser Artikel wurde verfasst von Herr. Somesh Awasthi .