Come fare Reverse String in Java?

Pubblicato: 2023-01-06

Una stringa è una sequenza di caratteri e viene trattata come un oggetto in Java. È un oggetto in Java che memorizza i dati in un array di caratteri. Una stringa invertita è chiamata stringa inversa. Ad esempio, il contrario della stringa 'program' è 'margorP'.

Sommario

La logica dietro l'inversione di stringhe in Java:

Sono disponibili vari modi per invertire una stringa, ognuno dei quali utilizza funzioni separate. Sebbene i metodi utilizzati siano diversi, il processo fondamentale dietro l'inversione della stringa è quasi lo stesso. La tipica logica utilizzata è:

  • Immettere una stringa utilizzando l'input dell'utente o nel codice.
  • Prendi i caratteri della stringa a partire dall'ultima posizione e salvali in qualsiasi variabile.
  • Visualizza l'output.

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzata o programmi di master per accelerare la tua carriera.

Vari metodi per invertire la stringa in Java:

  1. Utilizzo di StringBuffer o StringBuilder
  2. Utilizzo dell'iterazione inversa
  3. Utilizzo del metodo charAt()
  4. Utilizzo dell'oggetto ArrayList
  5. Usando la ricorsione
  6. Converti stringa in byte
  7. Usando Pila

Esaminiamo ciascuno di questi metodi in dettaglio.

Corsi e articoli popolari sull'ingegneria del software

Programmi popolari
Programma PG esecutivo in sviluppo software - IIIT B Programma di certificazione Blockchain - PURDUE Programma di certificazione della sicurezza informatica - PURDUE Laurea Magistrale in Informatica - IIIT B
Altri articoli popolari
Stipendio per Cloud Engineer negli Stati Uniti 2021-22 Stipendio di AWS Solution Architect negli Stati Uniti Stipendio per sviluppatori di backend negli Stati Uniti Stipendio per sviluppatore front-end negli Stati Uniti
Salario per sviluppatore web negli Stati Uniti Domande dell'intervista allo Scrum Master nel 2022 Come iniziare una carriera nella sicurezza informatica nel 2022? Opzioni di carriera negli Stati Uniti per studenti di ingegneria

1. Tramite StringBuilder / StringBuffer

La classe StringBuffer o StringBuilder ha un metodo incorporato reverse() che inverte i caratteri nella stringa. Sostituisce la sequenza dei caratteri in ordine inverso. Questo metodo è il metodo statico che implementa la logica per invertire la stringa in java .

StringBuffer e StringBuilder sono due classi di utilità in Java che gestiscono l'allocazione delle risorse delle manipolazioni delle stringhe.

Usando StringBuffer:

Programma Java che inverte una stringa utilizzando StringBuffer:

public class ExampleofReverseString{

public static void main(String[] args) {

Stringa str1 = "Mela";

//memorizza l'ordine delle stringhe invertito nella variabile rev

String rev = new StringBuffer(str1).reverse().toString();

//stampa la stringa prima del reverse

System.out.println(“\La stringa prima dell'inversione è: “+str1);

//stampa la stringa dopo il reverse

System.out.println(“La stringa dopo l'inversione è: “+rev);

}

}

Produzione:

La stringa prima dell'inversione è: Apple

La stringa dopo l'inversione è: elppA

Nell'esempio precedente, la stringa fornita come input verrebbe memorizzata nel buffer utilizzando StringBuffer. Verrebbe quindi invertito utilizzando il metodo reverse(). Dopo che il buffer è stato invertito, verrebbe convertito in una stringa utilizzando il metodo toString().

Usando StringBuilder:

La classe StringBuilder è altamente preferita rispetto alla classe StringBuffer. È più veloce e non sincronizzato.

Programma Java che inverte una stringa utilizzando StringBuilder:

public class ExampleofReverseString{

public static void main(String[] args) {

Stringa str1 = "Scuola";

// memorizza la stringa invertita nella variabile rev

String rev = new StringBuilder(str1).reverse().toString();

//stampa la stringa prima del reverse

System.out.println(“\nStringa prima dell'inversione: “+str1);

//stampa la stringa dopo il reverse

System.out.println(“Stringa dopo l'inversione: “+rev);

}

}

Produzione:

Corda prima dell'inversione: Scuola

Stringa prima dell'inversione: loohcS

Nel codice precedente viene utilizzato l'oggetto per la classe StringBuilder. Gli oggetti StringBuilder corrispondenti sono efficienti in termini di memoria, modificabili e veloci nell'esecuzione. L'oggetto chiama il metodo incorporato reverse() per fornire l'output desiderato.

2. Per iterazione inversa

Programma Java che inverte una stringa utilizzando l'iterazione inversa:

public class StringReversal {

public static String reverseString(String st){

char ch[]=st.toCharArray();

Stringa giro=””;

for(int i=ch.lunghezza-1;i>=0;i–)

{

giro+=ch[i];

}

giro di ritorno;

}

}

public class TestStringReversal {

public static void main(String[] args) {

System.out.println(StringReversal.reverseString("Sono un insegnante"));

System.out.println(StringReversal.reverseString("Insegno materia inglese"));

}

}

Produzione:

Sono rehcaet

I hcaet hsilgnE tcejbus

Nel programma precedente per la stringa inversa in java , i caratteri della stringa di input sono memorizzati nella variabile rev+ a partire dall'ultima posizione utilizzando for loop. La stringa invertita verrà mostrata nell'output dopo che tutti i caratteri sono stati memorizzati.

Puoi usare While Loop per l'iterazione inversa e il suo codice è il seguente:

public class StringReversal {

public static void main(String[] args)

{

String stringInput = "Questa stringa";

int StrLength=stringInput.length();

while(StrLunghezza >0)

{

System.out.print(stringInput.charAt(StrLength -1));

StrLength–;

}

}

}

Produzione:

gnirtS sihT

3. Utilizzo del metodo charAt()

Il suo programma Java è il seguente:

public class ExampleofReverseString {

public static void main(String[] args) {

String str = "Impara Java";

// memorizza la stringa invertita nella variabile revv

Stringa revv = “”;

//la lunghezza della stringa verrà memorizzata in len

int len=str.lunghezza();

for(int i=len-1;i>=0;i–)

revv = revv + str.charAt(i);

//stampa la stringa prima del reverse

System.out.println(“\nStringa prima dell'operazione di inversione: “+str);

//stampa la stringa dopo il reverse

System.out.println(“Stringa dopo l'inversione: “+ revv);

}

}

Produzione:

Stringa prima dell'operazione di inversione: impara Java

Stringa prima dell'operazione di inversione: avaJ nraeL

In questo programma java per invertire una stringa , i caratteri della stringa di input vengono memorizzati nella variabile revv a partire dall'ultima posizione utilizzando il ciclo for. Dopo che tutti i caratteri sono stati memorizzati, la stringa invertita si rifletterà nell'output.

4. Utilizzo dell'oggetto ArrayList

Il suo programma Java è il seguente:

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.ListIterator;

public class ExampleofReverseString {

public static void main(String[] args) {

String str = "Divertiti a programmare";

//converte la stringa di input in un array di caratteri

char ch[]=str.toCharArray();

//aggiunge un array di caratteri all'oggetto di ArrayList

List<Character> obj = new ArrayList<>();

per (carattere c: ch)

obj.add(c);

//passa l'oggetto di ArrayList alle collezioni

Collezioni.reverse(obj);

//crea l'oggetto del listiterator da ripetere sulla lista

ListIterator objnew = obj.listIterator();

//stampa la stringa prima dell'inversione

System.out.println(“\nStringa prima dell'operazione di inversione: “+ str);

//stampa la stringa dopo l'inversione

System.out.println(“\nStringa dopo l'operazione di inversione: “);

while (objnew.hasNext())

System.out.print(objnew.next());

}

}

Produzione:

Stringa prima dell'operazione di inversione: goditi la codifica

Stringa dopo l'operazione di inversione: gnidoc yojnE

Questo programma java per invertire una stringa memorizza i caratteri della stringa di input nell'oggetto ArrayList. Viene invertito utilizzando il metodo reverse () nelle raccolte. L'iteratore scorre l'elenco e stampa la stringa invertita dopo che è stata invertita.

5. Uso della ricorsione

Il suo programma Java è il seguente:

public class ExampleofReverseString {

// definisce la funzione di inversione

String giri(String str) {

// restituisce null se la lunghezza della stringa è zero

if(str.lunghezza() == 0)

{

Restituzione " ";

}

//altrimenti restituisce il carattere risultante dal seguente metodo

return str.charAt(str.length()-1) + revs(str.substring(0,str.length()-1));

}

public static void main(String[ ] args)

{

// crea un oggetto di classe

Esempio di stringa inversa r = new Esempio di stringa inversa ();

//inserisce la stringa

String str = "Master in Java";

//stampa la stringa prima dell'inversione

System.out.println(“\nStringa prima dell'operazione di inversione: “+ str);

//stampa la stringa dopo l'inversione

System.out.println(“\nStringa dopo l'operazione di inversione: ” + r.revs(str));

}

Produzione:

Stringa prima dell'operazione di inversione: Master in Java

Stringa dopo l'operazione di inversione: avaJ ni retsaM

In questo programma Java viene generata una funzione ricorsiva. Controlla la lunghezza della corda e dieci rovesci. Funziona in modo identico per invertire la funzione in java .

6. Conversione di una stringa in byte

Utilizza il metodo getBytes() che converte o suddivide la stringa di input in byte. In quel momento, la lunghezza dell'array di byte è uguale alla lunghezza della stringa di input. Il programma ottiene quindi i byte in ordine inverso e li salva in un nuovo array di byte.

Nel codice seguente viene generato temporaneamente un array di byte. Vengono creati array a due byte, uno per memorizzare i byte convertiti e un altro per salvare il risultato in ordine inverso.

Il suo programma Java è il seguente:

public static void main(String[] arg) {

Stringa inputvalue = "Computer";

byte[] strByteArray = inputvalue.getBytes();

byte[] risultato = new byte[strByteArray.length];

// Memorizza il risultato in ordine inverso nel byte del risultato[]

for (int i = 0; i < strByteArray.length; i++)

risultato[i] = strByteArray [strByteArray.length – i – 1];

System.out.println( "La stringa dopo l'operazione inversa è:" +new String(risultato));

}

Produzione:

La stringa dopo l'operazione inversa è: retupmoC

7) Utilizzo della pila

Questo metodo prevede i seguenti passaggi per invertire una stringa Java utilizzando la struttura dei dati Stack.

  1. Crea una pila senza caratteri.
  2. Trasforma una stringa di input in un array di caratteri utilizzando il metodo String.toCharArray(). Successivamente, aggiunge ogni carattere alla pila.

iii. Recupera i caratteri dallo stack finché non è vuoto e quindi assegna nuovamente i caratteri in un array di caratteri. Quindi, ora i personaggi arriveranno in ordine inverso.

  1. L'array di caratteri viene convertito in una stringa utilizzando String.copyValueOf(char[]) e infine restituisce la nuova stringa.

Il suo programma Java è il seguente:

import java.util.Stack;

classe Principale

{

public static String reverse(String str)

{

// controlla se la stringa è vuota o nulla

if (str == null || str.equals(“”)) {

ritorno str;

}

// genera una pila vuota di caratteri

Stack<Carattere> stack = new Stack<Carattere>();

// aggiunge tutti i caratteri della stringa di input nello stack

char[] ch = str.toCharArray();

for (int i = 0; i < str.length(); i++) {

stack.push(ch[i]);

}

// inizia dall'indice 0

intero m = 0;

// recupera i caratteri dallo stack finché non si svuota

while (!stack.isEmpty())

{

// assegna ogni carattere recuperato all'array di caratteri

ch[m++] = stack.pop();

}

// trasforma l'array di caratteri in una stringa e lo restituisce

return String.copyValueOf(ch);

}

public static void main(String[] args)

{

String str = "Innovazione tecnologica";

str = inverti(str);

System.out.println(“L'inverso della stringa di input: ” + str);

}

}

Produzione

Il contrario della stringa di input: ygolonhceT noitavonnI

Inizia il tuo viaggio in Java con UpGrad

Se vuoi imparare Java, devi comprendere i concetti di Core Java. Per questo, puoi perseguire il Master of Science in Computer Science di UpGrad . Copre argomenti come Core Java, concetti OOPS, oggetti e classi in Java, metodi in Java, Java Virtual Machine, polimorfismo, ereditarietà, astrazione, incapsulamento, ecc. Otterrai una guida esperta del settore. Questi esperti conducono sessioni dal vivo interattive che coprono curriculum e argomenti avanzati.

Qual è il modo più semplice per invertire una stringa in Java?

Il modo più semplice per invertire una stringa in Java è utilizzare la classe StringBuffer. Supporta un metodo noto come reverse() che inverte il contenuto dell'oggetto StringBuffer esistente e restituisce l'oggetto StringBuffer di output.

Qual è il metodo ricorsivo in Java?

Un metodo che chiama se stesso è chiamato metodo ricorsivo in Java. Il processo corrispondente è chiamato ricorsione.

Quali sono le applicazioni di String in Java?

In Java, le stringhe possono essere utilizzate per rilevare il plagio nei codici. Possono essere utilizzati per la codifica e la decodifica per il trasferimento sicuro dei dati dal mittente al destinatario. Le applicazioni di stringa ti aiutano a recuperare informazioni da origini dati anonime. Inoltre, le stringhe e le sue applicazioni di algoritmi forniscono filtri migliorati per risolvere il problema della sovrapposizione approssimativa di suffissi-prefissi.