Cum se face Reverse String în Java?

Publicat: 2023-01-06

Un șir este o secvență de caractere și este tratat ca un obiect în Java. Este un obiect în Java care stochează datele într-o matrice de caractere. Un șir care este inversat se numește șir invers. De exemplu, reversul șirului „program” este „margorP”.

Cuprins

Logica din spatele inversării șirurilor în Java:

Sunt disponibile diferite moduri de a inversa un șir, fiecare folosind funcții separate. Deși metodele folosite sunt diferite, procesul fundamental din spatele inversării șirului este aproape același. Logica tipică folosită este:

  • Introduceți un șir folosind introducerea utilizatorului sau în cod.
  • Luați caracterele șirului începând din ultima poziție și salvați-le în orice variabilă.
  • Afișează rezultatul.

Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.

Diverse metode de a inversa șirul în Java:

  1. Folosind StringBuffer sau StringBuilder
  2. Folosind iterația inversă
  3. Folosind metoda charAt().
  4. Folosind obiectul ArrayList
  5. Utilizarea recursiunii
  6. Convertiți șirul în octeți
  7. Folosind Stack

Să trecem prin fiecare dintre aceste metode în detaliu.

Cursuri populare și articole despre inginerie software

Programe populare
Program Executive PG în Dezvoltare Software - IIIT B Programul de Certificat Blockchain - PURDUE Programul de certificate de securitate cibernetică - PURDUE MSC în Informatică - IIIT B
Alte articole populare
Salariu inginer cloud în SUA 2021-22 Salariu AWS Solution Architect în SUA Salariu pentru dezvoltatori backend în SUA Salariu pentru Dezvoltator Front End în SUA
Salariu web developer in SUA Întrebări de interviu Scrum Master în 2022 Cum să începi o carieră în securitatea cibernetică în 2022? Opțiuni de carieră în SUA pentru studenții la inginerie

1. Prin StringBuilder / StringBuffer

Clasa StringBuffer sau StringBuilder are o metodă încorporată reverse() care inversează caracterele din șir. Acesta înlocuiește secvența personajelor în ordine inversă. Această metodă este metoda statică care implementează logica pentru a inversa șirul în java .

StringBuffer și StringBuilder sunt două clase de utilitate în Java care gestionează alocarea resurselor manipulărilor șirurilor.

Folosind StringBuffer:

Program Java care inversează un șir folosind StringBuffer:

clasă publică ExampleofReverseString{

public static void main(String[] args) {

String str1 = „Mere”;

//stochează ordinea inversă a șirurilor în variabila rev

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

//tipărește șirul înainte de invers

System.out.println(“\ Șirul înainte de inversare este: „+str1);

//tipărește șirul după invers

System.out.println(„Șirul după inversare este: „+rev);

}

}

Ieșire:

Șirul înainte de inversare este: Apple

Șirul după inversare este: elppA

În exemplul de mai sus, șirul care este furnizat ca intrare va fi stocat în tampon folosind StringBuffer. Ar fi apoi inversat folosind metoda reverse(). După ce tamponul este inversat, acesta va fi convertit într-un șir folosind metoda toString().

Folosind StringBuilder:

Clasa StringBuilder este foarte preferată în comparație cu clasa StringBuffer. Este mai rapid și nu este sincronizat.

Program Java care inversează un șir folosind StringBuilder:

clasă publică ExampleofReverseString{

public static void main(String[] args) {

String str1 = „Școală”;

//stochează șirul inversat în variabila rev

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

//tipărește șirul înainte de invers

System.out.println(“\nȘir înainte de inversare: „+str1);

//tipărește șirul după invers

System.out.println(„Șir după inversare: „+rev);

}

}

Ieșire:

Coarda inainte de a inversa: Scoala

Șir înainte de inversare: loohcS

În codul de mai sus, este folosit obiectul pentru clasa StringBuilder. Obiectele StringBuilder corespunzătoare sunt eficiente în memorie, sunt modificabile și rapid în execuție. Obiectul apelează metoda reverse() încorporată pentru a furniza rezultatul dorit.

2. Prin iterație inversă

Program Java care inversează un șir folosind Iterația inversă:

clasă publică StringReversal {

public static String reverseString(String st){

char ch[]=st.toCharArray();

String rev="”;

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

{

rev+=ch[i];

}

întoarcere turație;

}

}

clasă publică TestStringReversal {

public static void main(String[] args) {

System.out.println(StringReversal.reverseString(„Sunt profesor”));

System.out.println(StringReversal.reverseString(„Predau materie de engleză”));

}

}

Ieșire:

I ma rehcaet

I hcaet hsilgnE tcejbus

În programul de mai sus pentru șirul invers în java , caracterele șirului de intrare sunt stocate în variabila rev+ începând din ultima poziție folosind bucla for. Șirul inversat va fi afișat în rezultat după ce toate caracterele sunt stocate.

Puteți utiliza bucla While pentru iterație inversă, iar codul său este după cum urmează:

clasă publică StringReversal {

public static void main(String[] args)

{

String stringInput = „Acest șir”;

int StrLength=stringInput.length();

while(StrLength >0)

{

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

StrLength–;

}

}

}

Ieșire:

gnirtS sihT

3. Folosind metoda charAt().

Programul său Java este după cum urmează:

clasă publică ExampleofReverseString {

public static void main(String[] args) {

String str = „Învățați Java”;

//stochează șirul inversat în variabila revv

String revv = „”;

//lungimea șirului va fi stocată în len

int len=str.length();

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

revv = revv + str.charAt(i);

//tipărește șirul înainte de invers

System.out.println(“\nȘir înainte de operația de inversare: „+str);

//tipărește șirul după invers

System.out.println(„Șir după inversare: „+ revv);

}

}

Ieșire:

Șir înainte de operația de inversare: Învățați Java

Șir înainte de operația de inversare: avaJ nraeL

În acest program java pentru a inversa un șir de caractere, caracterele șirului de caractere de intrare sunt stocate în variabila revv începând de la ultima poziție folosind bucla for. După ce toate caracterele sunt stocate, șirul inversat va fi reflectat în rezultat.

4. Utilizarea obiectului ArrayList

Programul său Java este după cum urmează:

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.ListIterator;

clasă publică ExampleofReverseString {

public static void main(String[] args) {

String str = „Bucurați-vă de codare”;

// convertește șirul de intrare într-o matrice de caractere

char ch[]=str.toCharArray();

//adaugă matrice de caractere la obiectul ArrayList

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

pentru (car c: ch)

obj.add(c);

//trimite obiectul ArrayList colecțiilor

Colecții.reverse(obj);

//creează obiectul listeteratorului pentru a se repeta pe listă

ListIterator objnew = obj.listIterator();

//tipărește șirul înainte de inversare

System.out.println(“\nȘir înainte de operația de inversare: „+ str);

//tipărește șirul după inversare

System.out.println(“\nȘir după operația de inversare: „);

în timp ce (objnew.hasNext())

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

}

}

Ieșire:

Șir înainte de operația de inversare: Bucurați-vă de codare

Coarda dupa operatia de inversare: gnidoc yojnE

Acest program java pentru inversarea unui șir stochează caracterele șirului de intrare în obiectul ArrayList. Este inversat folosind metoda inversă () în colecții. Iteratorul iterează prin listă și tipărește șirul inversat după ce acesta este inversat.

5. Utilizarea recursiunii

Programul său Java este după cum urmează:

clasă publică ExampleofReverseString {

// definește funcția de inversare

String revs(String str) {

// returnează null dacă lungimea șirului este zero

if(lungimea str.() == 0)

{

întoarcere " ";

}

//în caz contrar returnează caracterul rezultat din următoarea metodă

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

}

public static void main(String[ ] args)

{

// creează un obiect de clasă

ExampleofReverseString r = nou ExampleofReverseString ();

//introduce șir

String str = „Maestru în Java”;

//tipărește șirul înainte de inversare

System.out.println(“\nȘir înainte de operația de inversare: „+ str);

//tipărește șirul după inversare

System.out.println(“\nȘir după operația de inversare: ” + r.revs(str));

}

Ieșire:

Șir înainte de operația de inversare: Master în Java

Șir după operația de inversare: avaJ ni retsaM

În acest program Java este generată o funcție recursivă. Verifică lungimea șirului și zece inversări. Funcționează identic pentru a inversa funcția în java .

6. Prin conversia unui șir în octeți

Utilizează metoda getBytes() care convertește sau împarte șirul de intrare în octeți. În acel moment, lungimea matricei de octeți este egală cu lungimea șirului de intrare. Programul primește apoi octeții în ordine inversă și îi salvează într-o nouă matrice de octeți.

În următorul cod, este generată temporar o matrice de octeți. Sunt create matrice de doi octeți - unul pentru a stoca octeții convertiți și altul pentru a salva rezultatul în ordine inversă.

Programul său Java este după cum urmează:

public static void main(String[] arg) {

String inputvalue = „Computer”;

byte[] strByteArray = inputvalue.getBytes();

byte[] rezultat = octet nou[strByteArray.length];

// Stochează rezultatul în ordine inversă în octetul rezultat[]

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

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

System.out.println( „Șirul după operația inversă este:” +new String (rezultat));

}

Ieșire:

Șirul după operația inversă este: retupmoC

7) Folosind Stack

Această metodă implică următorii pași pentru a inversa un șir Java folosind structura de date Stack.

  1. Creați o stivă fără caractere.
  2. Transformați un șir de intrare într-o matrice de caractere folosind metoda String.toCharArray(). Ulterior, adaugă fiecare caracter în stivă.

iii. Preluați caractere din stivă până când acesta este gol și apoi atribuiți din nou caracterele într-o matrice de caractere. Deci, acum personajele vor sosi în ordine inversă.

  1. Matricea de caractere este convertită într-un șir folosind String.copyValueOf(char[]) și în cele din urmă returnează noul șir.

Programul său Java este după cum urmează:

import java.util.Stack;

clasa Main

{

public static String invers (String str)

{

// verifică dacă șirul este gol sau nul

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

întoarcere str;

}

// generează un teanc gol de caractere

Stivă<Personaj> stivă = Stivă nouă<Personaj>();

// adaugă toate caracterele șirului de intrare în stivă

char[] ch = str.toCharArray();

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

stack.push(ch[i]);

}

// începe de la indicele 0

int m = 0;

// preia caracterele din stivă până când acesta devine gol

în timp ce (!stack.isEmpty())

{

// alocă fiecare caracter preluat înapoi matricei de caractere

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

}

// transformă tabloul de caractere într-un șir și îl returnează

return String.copyValueOf(ch);

}

public static void main(String[] args)

{

String str = „Inovație tehnologică”;

str = invers (str);

System.out.println(„Reversul șirului de intrare: ” + str);

}

}

Ieșire

Reversul sirului de intrare: ygolonhceT noitavonnI

Începeți cu călătoria dvs. Java cu UpGrad

Dacă doriți să învățați Java, trebuie să înțelegeți conceptele Core Java. Pentru aceasta, puteți urma Masterul în Științe în Informatică al UpGrad . Acesta acoperă subiecte precum Core Java, concepte OOPS, obiecte și clase în Java, Metode în Java, Java Virtual Machine, Polimorfism, Moștenire, Abstracție, Encapsulare etc. Veți primi îndrumări de experți din industrie. Acești experți desfășoară sesiuni interactive live care acoperă curriculum și subiecte avansate.

Care este cel mai simplu mod de a inversa un șir în Java?

Cel mai simplu mod de a inversa un String în Java este utilizarea clasei StringBuffer. Acceptă o metodă cunoscută sub numele de reverse() care inversează conținutul obiectului StringBuffer existent și returnează obiectul StringBuffer de ieșire.

Ce este metoda recursivă în Java?

O metodă care se autoapelează este numită metodă recursivă în Java. Procesul corespunzător se numește recursie.

Care sunt aplicațiile String în Java?

În Java, șirurile de caractere pot fi folosite pentru a detecta plagiatul în coduri. Ele pot fi utilizate pentru codificare și decodare pentru transferul sigur de date de la expeditor la receptor. Aplicațiile String vă ajută să obțineți informații din surse de date anonime. Mai mult, Strings și aplicațiile sale de algoritmi vă oferă filtre îmbunătățite pentru a rezolva problema de suprapunere aproximativă a sufixului-prefix.