In diesem Artikel werden verschiedene Möglichkeiten zum Umkehren einer Zeichenfolge in Java anhand von Beispielen erläutert.
Beispiele:
Prerequisite: String vs StringBuilder vs StringBuffer in Java>
Im Folgenden finden Sie einige interessante Fakten zu String- und StringBuilder-Klassen:
- Objekte von String sind unveränderlich.
- Die String-Klasse in Java verfügt nicht über die Methode reverse(), die StringBuilder-Klasse verfügt jedoch über eine integrierte Methode reverse().
- 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:
- Schiebe alle Charaktere im Stapel.
- 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 .