logo

Apgriezt virkni Java

Šajā rakstā ar piemēriem ir apskatīti dažādi veidi, kā apgriezt virkni Java.

Piemēri:



stīgu-reverss

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Tālāk ir sniegti daži interesanti fakti par String un StringBuilder klasēm:

  1. Stīgas objekti ir nemainīgi.
  2. Java virkņu klasei nav reverse() metodes, tomēr StringBuilder klasei ir iebūvēta reverse() metode.
  3. StringBuilder klasei nav metodes toCharArray (), savukārt klasei String ir metode 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>

Īstenošana:



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>

java pārtraukumam
>

>

Izvade

Original word: Geeks Reversed word: skeeG>

Virknes pārvēršana baitos: metodi getBytes() izmanto, lai pārvērstu ievades virkni baitos [].

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

Īstenošana:

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

>

>

Izvade

skeeGrofskeeG>

Izmantojot StringBuilder klases iebūvēto reverse() metodi:

Virknes klasei nav reverse() metodes, mums ir jāpārvērš ievades virkne uz StringBuilder, kas tiek panākts, izmantojot StringBuilder pievienošanas metodi. Pēc tam izdrukājiet apgrieztās virknes rakstzīmes, skenējot no pirmā līdz pēdējam rādītājam.

Īstenošana:

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

>

>

Izvade

skeeG rof skeeG>

Virknes pārvēršana rakstzīmju masīvā: Lietotājs ievada apgriezto virkni.

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

Īstenošana:

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

>

>

Izvade

skeeGroFskeeG>
  • Pārvērtiet ievades virkni rakstzīmju masīvā, izmantojot toCharArray(): Pārveidojiet ievades virkni rakstzīmju masīvā, izmantojot toCharArray () — iebūvēto virkņu klases metodi. Pēc tam skenējiet rakstzīmju masīvu no abām pusēm, t.i., no sākuma indeksa (pa kreisi), kā arī no pēdējā indeksa (labajā pusē).
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.>

Īstenošana:

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

kā kārtot masīvu sarakstu Java
>

>

Izvade

skeeG roF skeeG>
  • Izmantojot ArrayList objektu: Pārveidojiet ievades virkni rakstzīmju masīvā, izmantojot iebūvēto metodi toCharArray(). Pēc tam pievienojiet masīva rakstzīmes objektam ArrayList. Java ir arī iebūvēta reverse () metode kolekcijas klasei. Tā kā kolekcijas klases reverse() metode izmanto saraksta objektu, lai apgrieztu sarakstu, mēs nodosim ArrayList objektu, kas ir rakstzīmju saraksta veids.
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.>

Īstenošana:

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

>

>

Izvade

skeeG roF skeeG>

StringBuffer izmantošana:

Virknes klasei nav reverse() metodes, mums ir jāpārvērš ievades virkne uz StringBuffer, kas tiek panākts, izmantojot StringBuffer apgriezto metodi.

Īstenošana:

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

>

>

Izvade

skeeG>
  • Virknes maiņa, izmantojot lietotāja ievadi

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

>

>

Izvade

0>

Iepriekš minētajā kodā mēs būtībā nolasām lietotāja virkni, pirms sākam iterācijas cilpu, lai izveidotu jaunu, apgrieztu virkni. String klases funkcija charAt tiek izmantota, lai izgūtu katru sākotnējās virknes rakstzīmi atsevišķi no beigām, un operators + tiek izmantots, lai tos savienotu jaunā virknē.

Stack izmantošana:

Kaudzītes ideja ir tāda, ka mēs piekļūsim tikai kaudzes augšējam elementam, tāpēc tajā ir ietvertas 2 darbības, kā norādīts tālāk.

  1. bīdiet visas rakstzīmes kaudzē.
  2. izspiediet visas rakstzīmes no kaudzes un pievienojiet temp virknei.

Zemāk ir aprakstīta iepriekš minētās pieejas īstenošana.

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>

>

>

Izvade

Reversed string is : skeeG roF skeeG>

Laika sarežģītība: O(N) N ir virknes garums

Palīgtelpa: O(N) kaudzītei

Saistīts raksts: Dažādas metodes virknes apvēršanai C/C++

Šī raksta autors ir Mr. Somesh Awasthi .