Eine Zeichenkette rekursiv umkehren in Java

Rashmi Patidar 12 Oktober 2023
Eine Zeichenkette rekursiv umkehren in Java

Rekursion ist der Prozess, der die Funktion selbst wiederholt aufruft, bis eine Unterbrechungsbedingung die Kriterien erfüllt. Es ermöglicht dem Benutzer, die Funktion selbst von sich aus aufzurufen. Hier sind einige Bedingungen, die erfüllt sein müssen, damit eine Funktion rekursiv wird:

  1. Die Funktion muss sich selbst von derselben Funktion aufrufen.
  2. Eine Beendigungsbedingung ist erforderlich, um die rekursive Schleife daran zu hindern, wiederholt aufgerufen zu werden.
  3. Die Rekursion verwendet in ihrem Ablauf eine Stack-Datenstruktur. Es speichert Variablen und Funktionsaufrufe in seinem Speicher.

Unten ist der Codeblock zum Umkehren eines Strings mit Rekursion in Java.

import java.util.Scanner;

public class StringReverseUsingRecursion {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter any String :");
    String str = scanner.nextLine();
    System.out.println("The reverse of the String is : " + recursiveReverse(str));
  }

  static String recursiveReverse(String input) {
    if ((input == null) || (input.length() <= 1))
      return input;
    else {
      return recursiveReverse(input.substring(1)) + input.charAt(0);
    }
  }
}

Im obigen Codeblock enthält die Klasse eine statische Methode und die Methode main. Die Methode recursiveReverse() ist die statische rekursive Funktion, die einen String mittels Rekursion umkehrt. Es nimmt einen Eingabeparameter an und gibt auch einen String-Wert zurück.

In der Methode main wird die Klasse Scanner mit dem Schlüsselwort new instanziiert. Der Konstruktor der Scanner-Klasse verwendet den Input Stream als Parameter und erzeugt den Eingabestring nach dem Scannen aus der Eingabequelle.

Es konvertiert auch den Bytestrom in den Standardzeichensatz, der dem UTF-8-Standardsatz entspricht. Der Konstruktor wirft IllegalArgumentException, wenn die Daten nicht in den Standardzeichensatz konvertiert werden können.

Das System ist ein Paket der Klasse java.lang, das die Standardmethoden und Variablen der Eingabestreaminstanz repräsentiert. In ist die Instanzvariable des Eingabestroms, die geöffnet und bereit ist, Eingabedaten zu liefern.

Dieser Stream verwendet die Tastatureingabe oder eine andere vom Benutzer angegebene Eingabequelle.

Die Funktion nextLine() gibt die aktuelle Zeile ohne Zeilentrenner am Ende zurück. Dadurch wird eine benutzerdefinierte Eingabezeile in der Variablen str gespeichert. Der String wird später an die statische rekursive Methode übergeben.

Die Abschlussbedingung in der statischen Methode recursiveReverse() besteht darin, zu prüfen, ob die Eingabe null oder kleiner als eins ist, und dann die EingabeZeichenkette selbst zurückzugeben.

Wenn die Bedingung nicht erfüllt ist, ruft sie erneut die Funktion selbst auf, jedoch mit der TeilZeichenkette ohne das nullte Zeichen. Die Funktion substring() erstellt einen Teilstring des eigentlichen Strings und übergibt diesen kleineren Stream erneut an dieselbe Methode.

Daher wird es iterativ aufgerufen und beginnt am Ende mit der Rückgabe von Zeichen als Antwort.

Ausgabe:

Enter any String :
Hello
The reverse of the String is : olleH.
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Verwandter Artikel - Java String