Denne artikkelen diskuterer forskjellige måter å reversere en streng i Java med eksempler.
Eksempler:
Prerequisite: String vs StringBuilder vs StringBuffer in Java>
Følgende er noen interessante fakta om String- og StringBuilder-klasser:
- Objekter av streng er uforanderlige.
- String-klassen i Java har ikke reverse()-metoden, men StringBuilder-klassen har innebygd reverse()-metode.
- StringBuilder-klassen har ikke toCharArray()-metoden, mens String-klassen har toCharArray()-metoden.
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>
Gjennomføring:
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> |
>
>Produksjon
Original word: Geeks Reversed word: skeeG>
Konvertering av streng til byte: getBytes()-metoden brukes til å konvertere inndatastrengen til bytes[].
Metode:
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.>
Gjennomføring:
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)); } }> |
>
>Produksjon
skeeGrofskeeG>
Bruker den innebygde reverse()-metoden i StringBuilder-klassen:
String-klassen har ikke reverse()-metoden, vi må konvertere inndatastrengen til StringBuilder, noe som oppnås ved å bruke append-metoden til StringBuilder. Deretter skriver du ut tegnene i den omvendte strengen ved å skanne fra første til siste indeks.
Gjennomføring:
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);> > }> }> |
>
>Produksjon
skeeG rof skeeG>
Konvertering av streng til tegnarray: Brukeren skriver inn strengen som skal reverseres.
Metode:
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.>
Gjennomføring:
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]);> > }> }> |
>
>Produksjon
skeeGroFskeeG>
- Konverter inndatastrengen til tegnarray ved å bruke toCharArray(): Konverter inndatastrengen til tegnarray ved å bruke toCharArray() – innebygd metode for String Class. Skann deretter tegnarrayen fra begge sider, dvs. fra startindeksen (venstre) så vel som fra siste indeks (høyre) samtidig.
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.>
Gjennomføring:
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(); } }> |
>
>Produksjon
skeeG roF skeeG>
- Bruk av ArrayList-objekt: Konverter inndatastrengen til tegnmatrisen ved å bruke toCharArray() innebygd metode. Deretter legger du til tegnene i matrisen i ArrayList-objektet. Java har også innebygd reverse()-metode for klassen Collections. Siden Collections-klassen reverse()-metoden tar et listeobjekt, for å snu listen, vil vi sende ArrayList-objektet som er en type liste med tegn.
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.>
Gjennomføring:
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());> > }> }> |
>
>Produksjon
skeeG roF skeeG>
Bruke StringBuffer:
String-klassen har ikke reverse()-metoden, vi må konvertere inndatastrengen til StringBuffer, som oppnås ved å bruke den omvendte metoden til StringBuffer.
Gjennomføring:
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);> > }> }> |
>
>Produksjon
skeeG>
- Reversere streng ved å ta innspill fra bruker-
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);> > > }> }> > |
>
>Produksjon
0>
I koden ovenfor leser vi i hovedsak en streng fra brukeren før vi starter en iterasjonsløkke for å lage en ny, invertert streng. CharAt-funksjonen til String-klassen brukes til å hente hvert tegn i den originale strengen individuelt fra slutten, og +-operatoren brukes til å sette dem sammen til en ny streng.
blokkere YouTube-annonser på Android
Bruke stack:
Ideen med stabelen er at vi kun får tilgang til det øverste elementet i en stabel, så den inkluderer 2 trinn som følger:
- skyv alle karakterene i stabelen.
- pop alle tegnene fra stabelen og legg til midlertidig streng.
Nedenfor er implementeringen av tilnærmingen ovenfor.
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> |
>
>Produksjon
Reversed string is : skeeG roF skeeG>
Tidskompleksitet: O(N) N er lengden på strengen
Auxiliary Space: O(N) for stabel
Relatert artikkel: Ulike metoder for å reversere en streng i C/C++
Denne artikkelen er bidratt av MR. Somesh Awasthi .