logo

Vänd en sträng i Java

Den här artikeln diskuterar olika sätt att vända en sträng i Java med exempel.

Exempel:

sträng-omvänd



Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Följande är några intressanta fakta om String- och StringBuilder-klasser:

  1. Objekt av sträng är oföränderliga.
  2. String-klassen i Java har inte reverse()-metoden, men StringBuilder-klassen har inbyggd reverse()-metod.
  3. StringBuilder-klassen har inte metoden toCharArray(), medan klassen String har metoden toCharArray().
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>

Genomförande:

Java




sammanlänkningssträng i 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>

>

>

Produktion

Original word: Geeks Reversed word: skeeG>

Konvertera sträng till byte: getBytes()-metoden används för att konvertera indatasträngen till bytes[].

Metod:

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

Genomförande:

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

>

gjutsnöre som int
>

Produktion

skeeGrofskeeG>

Använder den inbyggda metoden reverse() av ​​StringBuilder-klassen:

String-klassen har inte metoden reverse(), vi måste konvertera indatasträngen till StringBuilder, vilket uppnås genom att använda append-metoden i StringBuilder. Skriv sedan ut tecknen i den omvända strängen genom att skanna från det första till det sista indexet.

Genomförande:

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

>

>

Produktion

skeeG rof skeeG>

Konvertera sträng till teckenuppsättning: Användaren matar in strängen som ska vändas.

Metod:

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

Genomförande:

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

>

delsträng av sträng java
>

Produktion

skeeGroFskeeG>
  • Konvertera inmatningssträngen till teckenmatris genom att använda toCharArray(): Konvertera inmatningssträngen till teckenmatris genom att använda den inbyggda metoden toCharArray() i String Class. Skanna sedan teckenuppsättningen från båda sidor, dvs från startindex (vänster) såväl som från sista index (höger) samtidigt.
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.>

Genomförande:

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

>

>

Produktion

skeeG roF skeeG>
  • Använda ArrayList-objekt: Konvertera inmatningssträngen till teckenmatrisen genom att använda den inbyggda metoden toCharArray(). Lägg sedan till tecknen i arrayen i ArrayList-objektet. Java har också inbyggd reverse()-metod för klassen Collections. Eftersom Collections class reverse()-metoden tar ett listobjekt, för att vända listan, skickar vi ArrayList-objektet som är en typ av teckenlista.
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.>

Genomförande:

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

ladda ner autocad 2019 engelska mediafire

>

>

Produktion

skeeG roF skeeG>

Använda StringBuffer:

String-klassen har inte metoden reverse(), vi måste konvertera indatasträngen till StringBuffer, vilket uppnås genom att använda den omvända metoden för StringBuffer.

Genomförande:

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

>

>

Produktion

skeeG>
  • Omvänd sträng genom att ta input från användar-

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

>

>

Produktion

tjurar vs oxe
0>

I koden ovan läser vi i huvudsak en sträng från användaren innan vi startar en iterationsslinga för att skapa en ny, inverterad sträng. CharAt-funktionen i klassen String används för att hämta varje tecken i den ursprungliga strängen individuellt från slutet, och operatorn + används för att sammanfoga dem till en ny sträng.

Använda stack:

Tanken med stack är att vi endast kommer att komma åt det övre elementet i en stack, så det inkluderar 2 steg enligt följande:

  1. tryck alla karaktärer i stack.
  2. poppa alla tecken från stack och lägg till tillfällig sträng.

Nedan är implementeringen av ovanstående tillvägagångssätt.

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>

>

>

Produktion

Reversed string is : skeeG roF skeeG>

Tidskomplexitet: O(N) N är strängens längd

Hjälputrymme: O(N) för stack

Relaterad artikel: Olika metoder för att vända en sträng i C/C++

Denna artikel är bidragit av Herr. Somesh Awasthi .