Jak zrobić odwrotny ciąg znaków w Javie?

Opublikowany: 2023-01-06

Ciąg jest ciągiem znaków i jest traktowany jako obiekt w Javie. Jest to obiekt w Javie, który przechowuje dane w tablicy znaków. Ciąg, który jest odwrócony, nazywany jest ciągiem odwróconym. Na przykład odwrotnością ciągu „program” jest „margorP”.

Spis treści

Logika odwracania łańcuchów w Javie:

Dostępne są różne sposoby odwrócenia łańcucha, z których każdy używa oddzielnych funkcji. Chociaż stosowane metody są różne, podstawowy proces odwracania struny jest prawie taki sam. Typowa stosowana logika to:

  • Wprowadź ciąg przy użyciu danych wprowadzonych przez użytkownika lub w kodzie.
  • Weź znaki ciągu rozpoczynającego się od ostatniej pozycji i zapisz je w dowolnej zmiennej.
  • Wyświetl dane wyjściowe.

Ucz się kursów programistycznych online z najlepszych światowych uniwersytetów. Zdobądź programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Różne metody odwrócenia ciągu znaków w Javie:

  1. Używając StringBuffer lub StringBuilder
  2. Korzystanie z odwrotnej iteracji
  3. Za pomocą metody charAt().
  4. Korzystanie z obiektu ArrayList
  5. Korzystanie z rekurencji
  6. Konwertuj ciąg na bajty
  7. Korzystanie ze stosu

Przyjrzyjmy się szczegółowo każdej z tych metod.

Popularne kursy i artykuły na temat inżynierii oprogramowania

Popularne programy
Program wykonawczy PG w rozwoju oprogramowania - IIIT B Program certyfikatów Blockchain - PURDUE Program Certyfikatów Cyberbezpieczeństwa - PURDUE Magister informatyki - IIIT B
Inne popularne artykuły
Wynagrodzenie inżyniera chmury w USA 2021-22 Wynagrodzenie architekta rozwiązań AWS w USA Wynagrodzenie programisty backendu w USA Wynagrodzenie programisty front-end w USA
Wynagrodzenie programisty internetowego w USA Pytania do wywiadu ze Scrum Masterem w 2022 roku Jak rozpocząć karierę w cyberbezpieczeństwie w 2022 roku? Opcje kariery w USA dla studentów inżynierii

1. Przez StringBuilder / StringBuffer

Klasa StringBuffer lub StringBuilder ma wbudowaną metodę reverse(), która odwraca znaki w łańcuchu. Zastępuje sekwencję znaków w odwrotnej kolejności. Ta metoda jest metodą statyczną, która implementuje logikę odwracania łańcucha w Javie .

StringBuffer i StringBuilder to dwie klasy narzędzi w Javie, które zarządzają alokacją zasobów podczas manipulacji łańcuchami.

Używając StringBuffera:

Program Java, który odwraca łańcuch za pomocą StringBuffer:

klasa publiczna ExampleofReverseString{

public static void main(String[] args) {

Ciąg str1 = „Jabłko”;

//przechowuje odwróconą kolejność łańcuchów w zmiennej rev

Łańcuch rev = nowy StringBuffer(str1).reverse().toString();

//wypisuje łańcuch przed rewersem

System.out.println("\Ciąg znaków przed odwróceniem to: "+str1);

//drukuje łańcuch po odwróceniu

System.out.println("Ciąg znaków po odwróceniu to: "+rev);

}

}

Wyjście:

Ciąg przed odwróceniem to: Apple

Łańcuch po odwróceniu to: elppA

W powyższym przykładzie ciąg, który jest podany jako dane wejściowe, byłby buforowany przy użyciu metody StringBuffer. Zostałoby to następnie odwrócone przy użyciu metody reverse(). Po odwróceniu bufora zostanie on przekonwertowany na ciąg przy użyciu metody toString().

Używając StringBuildera:

Klasa StringBuilder jest wysoce preferowana w porównaniu z klasą StringBuffer. Jest szybszy i nie jest zsynchronizowany.

Program Java, który odwraca ciąg za pomocą StringBuilder:

klasa publiczna ExampleofReverseString{

public static void main(String[] args) {

Łańcuch str1 = „Szkoła”;

//przechowuje odwrócony ciąg znaków w zmiennej rev

Łańcuch rev = new StringBuilder(str1).reverse().toString();

//wypisuje łańcuch przed rewersem

System.out.println(“\nCiąg przed odwróceniem: “+str1);

//drukuje łańcuch po odwróceniu

System.out.println("Ciąg znaków po odwróceniu: "+rev);

}

}

Wyjście:

Ciąg przed odwróceniem: Szkoła

Ciąg przed odwróceniem: loohcS

W powyższym kodzie używany jest obiekt klasy StringBuilder. Odpowiednie obiekty StringBuilder są wydajne pod względem pamięci, zmienne i szybkie w wykonywaniu. Obiekt wywołuje wbudowaną metodę reverse() w celu dostarczenia żądanego wyniku.

2. Przez odwróconą iterację

Program Java, który odwraca łańcuch za pomocą odwrotnej iteracji:

klasa publiczna StringReversal {

public static String reverseString(String st){

char ch[]=st.toCharArray();

Ciąg rev=””;

for(int i=kan.długość-1;i>=0;i–)

{

obr+=ch[i];

}

powrót obrót;

}

}

klasa publiczna TestStringReversal {

public static void main(String[] args) {

System.out.println(StringReversal.reverseString("Jestem nauczycielem "));

System.out.println(StringReversal.reverseString("Uczę angielskiego przedmiotu"));

}

}

Wyjście:

Jestem rehcaet

I hcaet hsilgnE tcejbus

W powyższym programie dla odwrotnego ciągu znaków w Javie znaki ciągu wejściowego są przechowywane w zmiennej rev+, zaczynając od ostatniej pozycji za pomocą pętli for. Odwrócony łańcuch zostanie wyświetlony na wyjściu po zapisaniu wszystkich znaków.

Możesz użyć pętli while do odwrotnej iteracji, a jej kod jest następujący:

klasa publiczna StringReversal {

public static void main(String[] args)

{

Ciąg stringInput = „Ten ciąg”;

int DługośćString=stringInput.length();

podczas gdy (Długość Ciągu > 0)

{

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

Długość–;

}

}

}

Wyjście:

gnirtS sihT

3. Wykorzystanie metody charAt().

Jego program Java jest jak poniżej:

klasa publiczna ExampleofReverseString {

public static void main(String[] args) {

String str = „Naucz się Javy”;

//przechowuje odwrócony ciąg znaków w zmiennej revv

Ciąg obr. = „”;

//długość łańcucha będzie przechowywana w len

int len=str.długość();

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

obr. = obr. + str.charAt(i);

//wypisuje łańcuch przed rewersem

System.out.println(“\nCiąg przed operacją odwrócenia: “+str);

//drukuje łańcuch po odwróceniu

System.out.println("Ciąg po odwróceniu: "+ revv);

}

}

Wyjście:

Ciąg znaków przed odwróceniem operacji: Naucz się języka Java

Ciąg znaków przed operacją odwrócenia: avaJ nraeL

W tym programie java, aby odwrócić ciąg znaków , znaki ciągu wejściowego są przechowywane w zmiennej revv, zaczynając od ostatniej pozycji za pomocą pętli for. Po zapisaniu wszystkich znaków odwrócony łańcuch zostanie odzwierciedlony w danych wyjściowych.

4. Wykorzystanie obiektu ArrayList

Jego program Java jest jak poniżej:

importuj java.util.ArrayList;

importuj java.util.Collections;

importuj java.util.List;

importuj java.util.ListIterator;

klasa publiczna ExampleofReverseString {

public static void main(String[] args) {

String str = „Ciesz się kodowaniem”;

//konwertuje ciąg wejściowy na tablicę znaków

char ch[]=str.toCharArray();

// dodaje tablicę znaków do obiektu ArrayList

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

dla (znak c: ch)

obj.add(c);

//przekazuje obiekt ArrayList do kolekcji

Collections.reverse(obiekt);

//tworzy obiekt listiteratora do powtórzenia na liście

ListIterator objnew = obj.listIterator();

//wypisuje łańcuch przed odwróceniem

System.out.println(“\nCiąg przed operacją odwrócenia: “+ str);

//wypisuje łańcuch po odwróceniu

System.out.println("\nCiąg po operacji odwrócenia: ");

while (objnew.hasNext())

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

}

}

Wyjście:

Ciąg przed operacją odwrócenia: Ciesz się kodowaniem

Ciąg znaków po operacji odwrócenia: gnidoc yojnE

Ten program java do odwrócenia ciągu przechowuje znaki ciągu wejściowego w obiekcie ArrayList. Jest odwracany przy użyciu metody reverse () w kolekcjach. Iterator iteruje po liście i drukuje odwrócony łańcuch po jego odwróceniu.

5. Korzystanie z rekurencji

Jego program Java jest jak poniżej:

klasa publiczna ExampleofReverseString {

// definiuje funkcję odwracającą

Obroty łańcucha (String str) {

// zwraca wartość null, jeśli długość łańcucha wynosi zero

if(str.długość() == 0)

{

powrót " ";

}

//w przeciwnym razie zwraca znak będący wypadkową następującej metody

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

}

public static void main(String[ ] args)

{

// tworzy obiekt klasy

ExampleofReverseString r = new ExampleofReverseString ();

//wprowadza łańcuch

String str = „Mistrz w Javie”;

//wypisuje łańcuch przed odwróceniem

System.out.println(“\nCiąg przed operacją odwrócenia: “+ str);

//wypisuje łańcuch po odwróceniu

System.out.println(“\nCiąg znaków po operacji odwrócenia: ” + r.revs(str));

}

Wyjście:

Ciąg znaków przed operacją odwrócenia: Master in Java

Łańcuch po operacji odwrócenia: avaJ ni retsaM

W tym programie Java generowana jest funkcja rekurencyjna. Sprawdza długość struny i dziesięć rewersów. Działa identycznie jak funkcja reverse w Javie .

6. Poprzez konwersję ciągu znaków na bajty

Wykorzystuje metodę getBytes(), która konwertuje lub dzieli łańcuch wejściowy na bajty. W tym momencie długość tablicy bajtów jest równa długości ciągu wejściowego. Następnie program pobiera bajty w odwrotnej kolejności i zapisuje je w nowej tablicy bajtów.

W poniższym kodzie tymczasowo generowana jest tablica bajtów. Tworzone są dwubajtowe tablice - jedna do przechowywania przekonwertowanych bajtów, a druga do zapisywania wyniku w odwrotnej kolejności.

Jego program Java jest jak poniżej:

public static void main(String[] arg) {

Ciąg wartość wejściowa = „Komputer”;

byte[] strByteArray = inputvalue.getBytes();

bajt[] wynik = nowy bajt[strByteArray.length];

// Przechowuje wyniki w odwrotnej kolejności w bajcie wyniku []

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

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

System.out.println( „Ciąg znaków po odwrotnej operacji to:” +new String(result));

}

Wyjście:

Łańcuch po odwrotnej operacji to: retupmoC

7) Używanie stosu

Ta metoda obejmuje następujące kroki, aby odwrócić ciąg Java przy użyciu struktury danych Stack.

  1. Utwórz stos bez znaków.
  2. Przekształć ciąg wejściowy w tablicę znaków za pomocą metody String.toCharArray() . Następnie dodaje każdy znak do stosu.

iii. Pobierz znaki ze stosu, aż będzie pusty, a następnie ponownie przypisz znaki do tablicy znaków. Więc teraz postacie pojawią się w odwrotnej kolejności.

  1. Tablica znaków jest konwertowana na ciąg przy użyciu String.copyValueOf(char[]) i ostatecznie zwraca nowy ciąg.

Jego program Java jest jak poniżej:

importuj java.util.Stack;

klasa główna

{

public static String reverse(String string)

{

// sprawdza, czy łańcuch jest pusty, czy zerowy

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

zwróć str;

}

// generuje pusty stos znaków

Stos<znak> stos = nowy Stos<znak>();

// dodaje wszystkie znaki ciągu wejściowego do stosu

char[] ch = str.toCharArray();

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

stack.push(ch[i]);

}

// zaczyna się od indeksu 0

int m = 0;

// pobiera znaki ze stosu, aż się opróżni

while (!stack.isEmpty())

{

// przypisuje każdy pobrany znak z powrotem do tablicy znaków

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

}

// przekształca tablicę znaków w łańcuch znaków i zwraca go

return String.copyValueOf(ch);

}

public static void main(String[] args)

{

String str = „Innowacja technologiczna”;

str = odwróć (str);

System.out.println(„Odwrotność ciągu wejściowego: ” + str);

}

}

Wyjście

Odwrotność ciągu wejściowego: ygolonhceT noitavonnI

Rozpocznij swoją przygodę z Javą dzięki UpGrad

Jeśli chcesz nauczyć się języka Java, musisz zrozumieć podstawowe pojęcia związane z językiem Java. W tym celu możesz ubiegać się o tytuł magistra informatyki UpGrad . Obejmuje takie tematy, jak Core Java, koncepcje, obiekty i klasy OOPS w Javie, metody w Javie, wirtualna maszyna Java, polimorfizm, dziedziczenie, abstrakcja, enkapsulacja itp. Otrzymasz wskazówki ekspertów branżowych. Ci eksperci prowadzą interaktywne sesje na żywo, które obejmują program nauczania i zaawansowane tematy.

Jaki jest najprostszy sposób na odwrócenie ciągu znaków w Javie?

Najprostszym sposobem odwrócenia ciągu znaków w Javie jest użycie klasy StringBuffer. Obsługuje metodę znaną jako reverse(), która odwraca zawartość istniejącego obiektu StringBuffer i zwraca wyjściowy obiekt StringBuffer.

Co to jest metoda rekurencyjna w Javie?

Metoda, która wywołuje samą siebie, nazywana jest w Javie metodą rekurencyjną. Odpowiedni proces nazywa się rekurencją.

Jakie są zastosowania String w Javie?

W Javie łańcuchy mogą być używane do wykrywania plagiatu w kodach. Mogą być używane do kodowania i dekodowania w celu bezpiecznego przesyłania danych od nadawcy do odbiorcy. Aplikacje łańcuchowe pomagają w pobieraniu informacji z anonimowych źródeł danych. Co więcej, łańcuchy i jego algorytmy zapewniają ulepszone filtry, które rozwiązują problem nakładania się sufiksów i przedrostków.