Jak zrobić odwrotny ciąg znaków w Javie?
Opublikowany: 2023-01-06Cią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:
- Używając StringBuffer lub StringBuilder
- Korzystanie z odwrotnej iteracji
- Za pomocą metody charAt().
- Korzystanie z obiektu ArrayList
- Korzystanie z rekurencji
- Konwertuj ciąg na bajty
- 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.
- Utwórz stos bez znaków.
- 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.
- 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.