logo

Käänteinen merkkijono Javassa

Tässä artikkelissa käsitellään erilaisia ​​tapoja kääntää merkkijono Javassa esimerkkien avulla.

Esimerkkejä:



java skanneri

merkkijono-käänteinen

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Seuraavassa on mielenkiintoisia faktoja String- ja StringBuilder-luokista:

  1. Stringin objektit ovat muuttumattomia.
  2. Javan merkkijonoluokassa ei ole reverse()-menetelmää, mutta StringBuilder-luokassa on sisäänrakennettu reverse()-menetelmä.
  3. StringBuilder-luokassa ei ole toCharArray()-metodia, kun taas String-luokassa on toCharArray()-metodi.
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>

Toteutus:



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>

>

>

Lähtö

Original word: Geeks Reversed word: skeeG>

Merkkijonon muuntaminen tavuiksi: getBytes() -menetelmää käytetään syötteen muuntamiseen tavuiksi [].

Menetelmä:

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

Toteutus:

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

>

>

Lähtö

skeeGrofskeeG>

StringBuilder-luokan sisäänrakennetun reverse()-menetelmän käyttäminen:

Merkkijonoluokassa ei ole reverse()-metodia, meidän on muutettava syötemerkkijono StringBuilderiksi, mikä saavutetaan StringBuilderin append-menetelmällä. Tulosta sen jälkeen käänteisen merkkijonon merkit skannaamalla ensimmäisestä viimeiseen hakemistoon.

Toteutus:

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

>

>

Lähtö

skeeG rof skeeG>

Merkkijonon muuntaminen merkkijonoksi: Käyttäjä syöttää käännettävän merkkijonon.

Menetelmä:

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

Toteutus:

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

>

>

Lähtö

skeeGroFskeeG>
  • Muunna syöttömerkkijono merkkijonoksi käyttämällä toCharArray(): Muunna syötemerkkijono merkkijonoksi käyttämällä toCharArray()-menetelmää, joka on String Classin sisäänrakennettu menetelmä. Skannaa sitten merkkijono molemmilta puolilta eli aloitusindeksistä (vasemmalta) sekä viimeisestä indeksistä (oikealta) samanaikaisesti.
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.>

Toteutus:

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

kuinka suuri tietokoneeni näyttö on
>

>

Lähtö

skeeG roF skeeG>
  • ArrayList-objektin käyttäminen: Muunna syöttömerkkijono merkkijonoksi käyttämällä sisäänrakennettua menetelmää toCharArray(). Lisää sitten taulukon merkit ArrayList-objektiin. Javassa on myös sisäänrakennettu reverse()-menetelmä kokoelmaluokalle. Koska Collections-luokan reverse() -menetelmä ottaa listaobjektin, luettelon kääntämiseksi välitämme ArrayList-objektin, joka on eräänlainen merkkiluettelo.
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.>

Toteutus:

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

>

>

Lähtö

skeeG roF skeeG>

StringBufferin käyttäminen:

String-luokassa ei ole reverse()-menetelmää, meidän on muutettava syötemerkkijono StringBufferiksi, mikä saavutetaan käyttämällä StringBufferin käänteistä menetelmää.

Toteutus:

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

>

>

Lähtö

skeeG>
  • Käänteinen merkkijono ottamalla syöte käyttäjältä

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

>

>

Lähtö

0>

Yllä olevassa koodissa luemme olennaisesti merkkijonoa käyttäjältä ennen iteraatiosilmukan aloittamista uuden, käänteisen merkkijonon luomiseksi. String-luokan charAt-funktiolla haetaan alkuperäisen merkkijonon jokainen merkki erikseen lopusta, ja +-operaattoria käytetään yhdistämään ne uudeksi merkkijonoksi.

Pinon käyttäminen:

Pinon ideana on, että käytämme vain pinon ylintä elementtiä, joten se sisältää 2 vaihetta seuraavasti:

  1. työnnä kaikki hahmot pinoon.
  2. pop kaikki merkit pinosta ja lisää temp-merkkijonoon.

Alla on edellä mainitun lähestymistavan toteutus.

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>

>

>

Lähtö

Reversed string is : skeeG roF skeeG>

Aika monimutkaisuus: O(N) N on merkkijonon pituus

Aputila: O(N) pinolle

Aiheeseen liittyvä artikkeli: Eri menetelmiä merkkijonon kääntämiseen C/C++:ssa

Tämän artikkelin on kirjoittanut Herra. Somesh Awasthi .