logo

Snu en streng i Java

Denne artikkelen diskuterer forskjellige måter å reversere en streng i Java med eksempler.

Eksempler:



streng-revers

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Følgende er noen interessante fakta om String- og StringBuilder-klasser:

  1. Objekter av streng er uforanderlige.
  2. String-klassen i Java har ikke reverse()-metoden, men StringBuilder-klassen har innebygd reverse()-metode.
  3. 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:

  1. skyv alle karakterene i stabelen.
  2. 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 .