logo

Obrátit řetězec v Javě

Tento článek popisuje různé způsoby, jak obrátit řetězec v Javě s příklady.

Příklady:



string-reverse

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Následuje několik zajímavých faktů o třídách String a StringBuilder:

jak zobrazit aplikaci v androidu
  1. Objekty String jsou neměnné.
  2. Třída String v Javě nemá metodu reverse(), ale třída StringBuilder má vestavěnou metodu reverse().
  3. Třída StringBuilder nemá metodu toCharArray(), zatímco třída String má metodu 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>

Implementace:



Jáva






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

>

>

Výstup

Original word: Geeks Reversed word: skeeG>

Převod řetězce na bajty: Metoda getBytes() se používá k převodu vstupního řetězce na bajty[].

Metoda:

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

Implementace:

Jáva




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

>

linuxová architektura
>

Výstup

skeeGrofskeeG>

Použití vestavěné metody reverse() třídy StringBuilder:

Třída String nemá metodu reverse(), potřebujeme převést vstupní řetězec na StringBuilder, čehož dosáhneme pomocí metody append StringBuilderu. Poté vytiskněte znaky obráceného řetězce skenováním od prvního po poslední index.

Implementace:

Jáva




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

>

>

Výstup

skeeG rof skeeG>

Převod řetězce na pole znaků: Uživatel zadá řetězec, který má být obrácen.

Metoda:

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

Implementace:

Jáva




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

>

>

Výstup

skeeGroFskeeG>
  • Převeďte vstupní řetězec na pole znaků pomocí funkce toCharArray(): Převeďte vstupní řetězec na pole znaků pomocí toCharArray() – vestavěné metody třídy String. Poté naskenujte pole znaků z obou stran, tj. od počátečního indexu (vlevo) i od posledního indexu (vpravo) současně.
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.>

Implementace:

Jáva




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

>

>

Výstup

skeeG roF skeeG>
  • Použití objektu ArrayList: Převeďte vstupní řetězec na pole znaků pomocí vestavěné metody toCharArray(). Potom přidejte znaky pole do objektu ArrayList. Java má také vestavěnou metodu reverse() pro třídu Collections. Protože metoda reverse() třídy Collections přebírá objekt seznamu, pro obrácení seznamu předáme objekt ArrayList, což je typ seznamu znaků.
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.>

Implementace:

Jáva


mapování na stroji



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

>

string.format java

>

Výstup

skeeG roF skeeG>

Použití StringBuffer:

Třída String nemá metodu reverse(), potřebujeme převést vstupní řetězec na StringBuffer, čehož dosáhneme pomocí reverzní metody StringBuffer.

Implementace:

Jáva




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

>

>

Výstup

skeeG>
  • Obrácení řetězce přebíráním vstupu od uživatele-

Jáva




java vizualizér
/*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);> > >}> }> >

>

>

Výstup

0>

Ve výše uvedeném kódu v podstatě čteme řetězec od uživatele před zahájením iterační smyčky, abychom vytvořili nový, invertovaný řetězec. Funkce charAt třídy String se používá k načtení každého znaku původního řetězce jednotlivě od konce a operátor + se používá k jejich zřetězení do nového řetězce.

Použití zásobníku:

Myšlenka zásobníku je taková, že budeme přistupovat pouze k hornímu prvku zásobníku, takže zahrnuje 2 následující kroky:

  1. zatlačte všechny postavy v zásobníku.
  2. vytáhněte všechny znaky ze zásobníku a připojte je k dočasnému řetězci.

Níže je uvedena implementace výše uvedeného přístupu.

Jáva




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>

>

>

Výstup

Reversed string is : skeeG roF skeeG>

Časová složitost: O(N) N je délka řetězce

Pomocný prostor: O(N) pro zásobník

Související článek: Různé metody pro obrácení řetězce v C/C++

Do tohoto článku přispěl Pan. Somesh Awasthi .