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

Prerequisite: String vs StringBuilder vs StringBuffer in Java>
Toliau pateikiami keli įdomūs faktai apie String ir StringBuilder klases:
- Stygos objektai yra nekintantys.
- „Java“ eilutės klasė neturi reverse () metodo, tačiau „StringBuilder“ klasėje yra įmontuotas atvirkštinis () metodas.
- 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:
- stumkite visus simbolius į krūvą.
- 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 .