Cum se face Reverse String în Java?
Publicat: 2023-01-06Un ș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:
- Folosind StringBuffer sau StringBuilder
- Folosind iterația inversă
- Folosind metoda charAt().
- Folosind obiectul ArrayList
- Utilizarea recursiunii
- Convertiți șirul în octeți
- 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.
- Creați o stivă fără caractere.
- 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ă.
- 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.