logo

Invertire una stringa in Java

Questo articolo discute diversi modi per invertire una stringa in Java con esempi.

Esempi:

inversione di stringa



Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Di seguito sono riportati alcuni fatti interessanti sulle classi String e StringBuilder:

  1. Gli oggetti di String sono immutabili.
  2. La classe String in Java non ha il metodo reverse(), tuttavia, la classe StringBuilder ha il metodo reverse() integrato.
  3. La classe StringBuilder non ha il metodo toCharArray(), mentre la classe String ha il metodo 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>

Implementazione:

Giava




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

>

>

Produzione

Original word: Geeks Reversed word: skeeG>

Conversione di stringhe in byte: Il metodo getBytes() viene utilizzato per convertire la stringa di input in bytes[].

Metodo:

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

Implementazione:

Giava




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

>

>

Produzione

skeeGrofskeeG>

Utilizzando il metodo reverse() integrato della classe StringBuilder:

La classe String non ha il metodo reverse(), dobbiamo convertire la stringa di input in StringBuilder, cosa che si ottiene utilizzando il metodo append di StringBuilder. Successivamente, stampa i caratteri della stringa invertita eseguendo la scansione dal primo all'ultimo indice.

Implementazione:

Giava




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

>

>

Produzione

skeeG rof skeeG>

Conversione di una stringa in un array di caratteri: L'utente inserisce la stringa da invertire.

Metodo:

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

Implementazione:

Giava




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

>

>

Produzione

skeeGroFskeeG>
  • Converti la stringa di input in un array di caratteri utilizzando toCharArray(): Converti la stringa di input in un array di caratteri utilizzando il metodo toCharArray() integrato della classe String. Quindi, scansiona l'array di caratteri da entrambi i lati, ovvero dall'indice iniziale (a sinistra) e dall'ultimo indice (a destra) contemporaneamente.
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.>

Implementazione:

Giava




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

>

>

Produzione

skeeG roF skeeG>
  • Utilizzando l'oggetto ArrayList: Converti la stringa di input nell'array di caratteri utilizzando il metodo integrato toCharArray(). Quindi, aggiungi i caratteri dell'array nell'oggetto ArrayList. Java ha anche integrato il metodo reverse() per la classe Collections. Poiché il metodo reverse() della classe Collection accetta un oggetto elenco, per invertire l'elenco passeremo l'oggetto ArrayList che è un tipo di elenco di caratteri.
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.>

Implementazione:

Giava




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

>

>

Produzione

skeeG roF skeeG>

Utilizzando StringBuffer:

La classe String non ha il metodo reverse(), dobbiamo convertire la stringa di input in StringBuffer, cosa che si ottiene utilizzando il metodo inverso di StringBuffer.

Implementazione:

Giava


dizionario c#



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

>

>

Produzione

skeeG>
  • Inversione della stringa prendendo input dall'utente-

Giava




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

>

>

Produzione

0>

Nel codice precedente, stiamo essenzialmente leggendo una String dall'utente prima di avviare un ciclo di iterazione per creare una nuova String invertita. La funzione charAt della classe String viene utilizzata per recuperare ogni carattere della String originale individualmente dalla fine e l'operatore + viene utilizzato per concatenarli in una nuova String.

Utilizzando la pila:

L'idea dello stack è che accederemo solo all'elemento superiore di uno stack, quindi include 2 passaggi come segue:

  1. spingere tutti i personaggi in pila.
  2. estrai tutti i caratteri dallo stack e aggiungili alla stringa temporanea.

Di seguito è riportata l'implementazione dell'approccio di cui sopra.

Giava




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>

>

>

Produzione

Reversed string is : skeeG roF skeeG>

Complessità temporale: O(N) N è la lunghezza della stringa

Spazio ausiliario: O(N) per stack

Articolo correlato: Diversi metodi per invertire una stringa in C/C++

Questo articolo è stato fornito da Sig. Somesh Awasthi .