Dit artikel bespreekt verschillende manieren om een string in Java om te keren met voorbeelden.
Voorbeelden:

Prerequisite: String vs StringBuilder vs StringBuffer in Java>
Hieronder volgen enkele interessante feiten over de klassen String en StringBuilder:
- Objecten van String zijn onveranderlijk.
- De klasse String in Java heeft geen reverse()-methode, maar de klasse StringBuilder heeft een ingebouwde reverse()-methode.
- De klasse StringBuilder heeft geen methode toCharArray(), terwijl klasse String wel de methode toCharArray() heeft.
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>
Implementatie:
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> |
>
>Uitvoer
Original word: Geeks Reversed word: skeeG>
String omzetten in bytes: getBytes() methode wordt gebruikt om de invoertekenreeks om te zetten in bytes[].
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.>
Implementatie:
diff in python
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)); } }> |
>
tekenreeks casten als int java
>Uitvoer
skeeGrofskeeG>
Met behulp van de ingebouwde reverse()-methode van de StringBuilder-klasse:
De klasse String heeft geen reverse()-methode. We moeten de invoertekenreeks naar StringBuilder converteren, wat wordt bereikt door de append-methode van StringBuilder te gebruiken. Druk daarna de tekens van de omgekeerde string af door van de eerste tot de laatste index te scannen.
Implementatie:
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);> >}> }> |
>
>Uitvoer
skeeG rof skeeG>
String naar karakterarray converteren: De gebruiker heeft de tekenreeks ingevoerd die moet worden omgekeerd.
Methode:
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.>
Implementatie:
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]);> >}> }> |
>
>Uitvoer
skeeGroFskeeG>
- Converteer de invoerreeks naar een tekenarray met behulp van toCharArray(): Converteer de invoerreeks naar een tekenarray met behulp van de toCharArray() – ingebouwde methode van de String Class. Scan vervolgens de tekenarray van beide kanten, dat wil zeggen vanaf de startindex (links) en vanaf de laatste index (rechts) tegelijkertijd.
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.>
Implementatie:
Java
eenvoudig Java-programma
// 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(); } }> |
>
>Uitvoer
skeeG roF skeeG>
- ArrayList-object gebruiken: Converteer de invoertekenreeks naar de tekenarray met behulp van de ingebouwde methode toCharArray(). Voeg vervolgens de tekens van de array toe aan het ArrayList-object. Java heeft ook een ingebouwde reverse()-methode voor de klasse Collections. Omdat de methode Collections class reverse() een lijstobject gebruikt, zullen we, om de lijst om te keren, het ArrayList-object doorgeven, een soort lijst met tekens.
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.>
Implementatie:
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());> >}> }> |
>
>
reeks objecten in JavaUitvoer
skeeG roF skeeG>
StringBuffer gebruiken:
De klasse String heeft geen reverse()-methode. We moeten de invoertekenreeks naar StringBuffer converteren, wat wordt bereikt door de omgekeerde methode van StringBuffer te gebruiken.
Implementatie:
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);> >}> }> |
>
>Uitvoer
skeeG>
- String omkeren door input te nemen van de gebruiker
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);> > >}> }> > |
>
>Uitvoer
0>
In de bovenstaande code lezen we in wezen een String van de gebruiker voordat we een iteratielus starten om een nieuwe, omgekeerde String te maken. De charAt-functie van de klasse String wordt gebruikt om elk teken van de originele String afzonderlijk vanaf het einde op te halen, en de operator + wordt gebruikt om ze samen te voegen tot een nieuwe String.
Stapel gebruiken:
Het idee van stapel is dat we alleen toegang krijgen tot het bovenste element van een stapel, dus het omvat de volgende twee stappen:
- duw alle karakters in de stapel.
- pop alle karakters van de stapel en voeg ze toe aan de tijdelijke string.
Hieronder vindt u de implementatie van bovenstaande aanpak.
Java
int te verdubbelen
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> |
>
>Uitvoer
Reversed string is : skeeG roF skeeG>
Tijdcomplexiteit: O(N) N is de lengte van de tekenreeks
Hulpruimte: O(N) voor stapel
Gerelateerd artikel: Verschillende methoden om een string om te keren in C/C++
Dit artikel is bijgedragen door Dhr. Somesh Awasthi .