String in Java mit Rekursion umkehren – Schritt-für-Schritt-Anleitung
String in Java mit Rekursion umkehren
Rekursion ist eine leistungsstarke Technik, um Probleme zu lösen, die sich in kleinere, ähnliche Teilprobleme zerlegen lassen. Das Umkehren eines Strings ist ein klassisches Beispiel, das zeigt, wie eine einfache rekursive Funktion elegante String-Manipation bewältigen kann.
Warum Rekursion verwenden?
- Konzeptionelle Klarheit – die Funktion spiegelt die Probledefinition natürlich wider.
- Minimaler Code – nur wenige Zeilen sind für die Umkehrung nötig.
- Bildungswert – hilft, das Basis-Fall-/Rekursions-Schritt-Muster zu verinnerlichen.
Java-Implementierung
package com.guru99;
public class StringUmkehren {
public static void main(String[] args) {
String meinString = "Guru99";
String umgekehrt = stringUmkehren(meinString);
System.out.println("Der umgekehrte String ist: " + umgekehrt);
}
/**
* Kehrt den gegebenen String rekursiv um.
* @param str der umzukehrende String
* @return der umgekehrte String
*/
public static String stringUmkehren(String str) {
if (str.isEmpty()) {
return ""; // Basisfall: ein leerer String ist seine eigene Umkehrung
}
// Rekursiere über den Teilstring ohne das erste Zeichen
return stringUmkehren(str.substring(1)) + str.charAt(0);
}
}
Typische Ausgabe
Der umgekehrte String ist: 99uruG
Den Ablauf verstehen
Die Rekursion funktioniert, indem sie wiederholt das erste Zeichen abtrennt und es an das Ergebnis der Umkehrung des verbleibenden Teilstrings anhängt. Wenn der Teilstring leer wird, rollt die Rekursion ab und verknüpft die Zeichen in umgekehrter Reihenfolge.
Randfälle & Performance
- Leerer String – wird durch den Basisfall behandelt, gibt sofort einen leeren String zurück.
- Null-Eingabe – Sie können eine Null-Prüfung hinzufügen, um eine
NullPointerExceptionzu vermeiden. - Zeitkomplexität – O(n) für Zeit und Speicher aufgrund des Rekursionsstacks.
Fazit
Rekursive String-Umkehr ist prägnant und demonstriert algorithmisches Kernwissen. Für Produktionscode, wo Performance kritisch ist, ist ein iterativer Ansatz oder die Verwendung von StringBuilder aufgrund geringerer Stack-Nutzung vorzuziehen.
Java
- Java Strings meistern: Erstellung, Methoden und Best Practices
- String-Repräsentationen in Java Enums meistern
- Array von Objekten in Java erstellen: Schritt-für-Schritt-Anleitung
- Java String length() Methode: String-Länge ermitteln (Beispiel)
- Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
- Java String compareTo() meistern: Syntax, Anwendungsfälle und praktische Beispiele
- Java String.endsWith(): String-Suffixe prüfen mit Beispielen
- Java String-Ersetzung meistern: replace(), replaceAll() und replaceFirst() erklärt
- Char in String in Java konvertieren – Praxisbeispiele und Best Practices
- Fibonacci-Folge in Java generieren: For-, While- und Rekursions-Beispiele