logo

Apverskite eilutę Java

Šiame straipsnyje aptariami įvairūs būdai, kaip pakeisti eilutę Java programoje su pavyzdžiais.

Pavyzdžiai:



styga-reversas

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Toliau pateikiami keli įdomūs faktai apie String ir StringBuilder klases:

  1. Stygos objektai yra nekintantys.
  2. „Java“ eilutės klasė neturi reverse () metodo, tačiau „StringBuilder“ klasėje yra įmontuotas atvirkštinis () metodas.
  3. StringBuilder klasė neturi toCharArray() metodo, o String klasė turi toCharArray() metodą.
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>

Įgyvendinimas:



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>

>

>

Išvestis

Original word: Geeks Reversed word: skeeG>

Eilutės konvertavimas į baitus: GetBytes() metodas naudojamas konvertuoti įvesties eilutę į baitus [].

Metodas:

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

Įgyvendinimas:

Java




klaida: nepavyko rasti arba įkelti pagrindinės klasės

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

>

Patikrinkite java versiją linux
>

Išvestis

skeeGrofskeeG>

Naudojant integruotą atvirkštinį () metodą StringBuilder klasėje:

Styginių klasėje nėra reverse() metodo, turime konvertuoti įvesties eilutę į StringBuilder, o tai pasiekiama naudojant StringBuilder append metodą. Po to išspausdinkite atvirkštinės eilutės simbolius, nuskaitydami nuo pirmos iki paskutinės rodyklės.

Įgyvendinimas:

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

>

>

Išvestis

skeeG rof skeeG>

Eilutės konvertavimas į simbolių masyvą: Vartotojas įveda eilutę, kurią reikia pakeisti.

Metodas:

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

Įgyvendinimas:

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

>

>

Išvestis

skeeGroFskeeG>
  • Konvertuokite įvesties eilutę į simbolių masyvą naudodami toCharArray(): Konvertuokite įvesties eilutę į simbolių masyvą naudodami toCharArray() – įmontuotą eilučių klasės metodą. Tada nuskaitykite simbolių masyvą iš abiejų pusių, t. y. nuo pradžios indekso (kairėje), taip pat iš paskutinio indekso (dešinėje) vienu metu.
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.>

Įgyvendinimas:

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

>

paleisti scenarijus Linux sistemoje
>

Išvestis

skeeG roF skeeG>
  • Naudojant ArrayList objektą: Konvertuokite įvesties eilutę į simbolių masyvą naudodami įtaisytąjį metodą toCharArray(). Tada pridėkite masyvo simbolius į objektą ArrayList. Java taip pat turi integruotą atvirkštinį () metodą rinkinių klasei. Kadangi Kolekcijos klasės reverse() metodas paima sąrašo objektą, norėdami pakeisti sąrašą, perduosime objektą ArrayList, kuris yra simbolių sąrašo tipas.
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.>

Įgyvendinimas:

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

>

>

Išvestis

skeeG roF skeeG>

StringBuffer naudojimas:

Styginių klasė neturi reverse() metodo, turime konvertuoti įvesties eilutę į StringBuffer, o tai pasiekiama naudojant atvirkštinį StringBuffer metodą.

Įgyvendinimas:

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

>

>

Išvestis

skeeG>
  • Atvirkštinė eilutė priimant vartotojo įvestį

Java


kas yra 10 iš 1 mln



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

>

>

Išvestis

0>

Aukščiau pateiktame kode mes iš esmės skaitome vartotojo eilutę prieš pradėdami iteracijos ciklą, kad sukurtume naują, apverstą eilutę. Klasės String funkcija charAt naudojama kiekvienam originalios eilutės simboliui atskirai nuo pabaigos nuskaityti, o operatorius + naudojamas joms sujungti į naują eilutę.

Stack naudojimas:

Krūvos idėja yra ta, kad pasieksime tik viršutinį krūvos elementą, todėl jį sudaro 2 veiksmai:

  1. stumkite visus simbolius į krūvą.
  2. iškelkite visus simbolius iš krūvos ir pridėkite prie laikinosios eilutės.

Žemiau pateikiamas pirmiau minėto metodo įgyvendinimas.

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>

>

JavaScript kodo pavyzdžiai
>

Išvestis

Reversed string is : skeeG roF skeeG>

Laiko sudėtingumas: O(N) N yra eilutės ilgis

Pagalbinė erdvė: O(N) krūvai

Susijęs straipsnis: Įvairūs būdai pakeisti eilutę C/C++

Prie šio straipsnio prisidėjo Ponas. Somesh Awasthi .