Rekursives Umdrehen, Spiegeln. etc. von Strings

Siebenkern

Mitglied
Moin,

ich wende mich mal mit einem (wahrscheinlich völlig lächerlichen) Problem an euch.
und zwar muss ich für die Uni mit rekursiven Methoden einzelne Strings spiegeln bzw. umdrehen.
Die Programme, dei dafür erforderlich sind, sollten sich ja nicht allzusehr voneinander unterscheiden, da die Ausgabe beim Spiegeln Mit dem eingegebenen String("ApfellefpA"), beim Umdrehen Ohne den eingegeben String (lefpA) wiedergegeben wird. Ich dachte mir deshalb, dass ich einfach die Länge des Strings bestimme und dann beim letzten Buchstaben beginne. Aber irgendwas geht schief.

vielleicht könnt ihr mir ja helfen :)

Java:
public class aufgabe12fuenf {
	
	/**
	 * 
	 * @param s 		umzudrehender String
	 * @param ausgabe 	string, der gefüllt wird.
	 * @param zaehler	Länge des Strings
	 * @return			fertiger String
	 */
	
	static String backward(String s, String ausgabe, int zaehler){
		int x = zaehler;
		if (s.length() == 0) return "";
		if (s.length() == 1) return s;
		
		ausgabe += s.charAt(x);
		x -= 1;
		return ausgabe + backward(s, ausgabe, x);
	}
	/**
	 * 
	 * @param s 	zu drehender String;
	 * @return		ruft überladene Methode backward auf
	 */
	static String backward(String s){
		int y = s.length() - 1;
		return backward(s, "", y);
	}
	
	public static void main (String[]args){
		
		System.out.println(backward("olleH"));
	}

}
 

PublicClass

Mitglied
Hi Siebenkern,

Ich bin noch ein Anfänger, aber ich hatte folgende Idee zu deinem Problem:

Bestimm die länge des Strings mit .length
und lass dann anhand des Index die Zeichen nacheinander ausgeben.
Ich denke mal das sich dafür eine ordentliche Methode schreiben lässt die universell anwendbar ist.

Das wäre mein Idee würde dir gerne ein Beispiel geben aber habe zur zeit ein wenig Stress also sorry.
Und wahrscheinlich geht das auch noch irwie viel einfacher aber wie gesagt bin ein Anfänger :D
und ganz wahrscheinlich ist das auch großer quatsch was ich da geschrieben hab :D
LG und Vllt konnte ich ja sogar helfen.
 
Zuletzt bearbeitet:

Salohcin

Mitglied
Hi Siebenkern,

Ich bin noch ein Anfänger, aber ich hatte folgende Idee zu deinem Problem:

Bestimm die länge des Strings mit .length
und lass dann anhand des Index die Zeichen nacheinander ausgeben.
Ich denke mal das sich dafür eine ordentliche Methode schreiben lässt die universell anwendbar ist.

Das wäre mein Idee würde dir gerne ein Beispiel geben aber habe zur zeit ein wenig Stress also sorry.
Und wahrscheinlich geht das auch noch irwie viel einfacher aber wie gesagt bin ein Anfänger :D
und ganz wahrscheinlich ist das auch großer quatsch was ich da geschrieben hab :D
LG und Vllt konnte ich ja sogar helfen.

Hallo!
Es geht hier explizit um Rekursion, in der Modellierung, siehe Wikipedia Artikel zu Rekursion!


Nun zum Fehler, zuerst "int y = s.length() -1;" muss "int y = s.length();" sein. Der Fehler ist das duu den case von "zähler == 0" nicht abfängst und der Alghorythmus einmal zuviel in backward(); aufruft...

Also hier ist der funktionierende Quellcode, da in Eile:
Java:
public class aufgabe12fuenf {
  
  /**
  *
  * @param s         umzudrehender String
  * @param ausgabe   string, der gefüllt wird.
  * @param zaehler   Länge des Strings
  * @return          fertiger String
  */
  
  static String backward(String s, String ausgabe, int zaehler){
    int x = zaehler;
    if (s.length() == 0) return "";
    if (s.length() == 1) return s;
    
    x --;
    
    System.out.println(s.charAt(x));//hier nochmal zur verdeutlichung, wann was ausgelesen wird

    if (x==0) {//fäng x == 0 ab, damit nicht nochmal in backward eintritt, da kam der error her ;)
      return "" + s.charAt(x);
    } // end of if
    
    return s.charAt(x) + backward(s, ausgabe, x);
  }
  /**
  *
  * @param s     zu drehender String;
  * @return      ruft überladene Methode backward auf
  */
  static String backward(String s){
    int y = s.length(); // kein -1
    return backward(s, "", y);
  }
  
  public static void main (String[]args){
    System.out.println("olleH".charAt(1));
    
    System.out.println(backward("olleH"));
  }
  
}
MfG Salohcin [Q1]
 

DrZoidberg

Top Contributor
Es gibt da verschiedene Möglichkeiten das zu schreiben.

z.B. so

Java:
static String backward(String s, String ausgabe, int zaehler){
    if(zaehler >= 0) {
        return backward(s, ausgabe + s.charAt(zaehler), zaehler-1);
    } else {
        return ausgabe;
    }
}

static String backward(String s){
    if (s.length() < 2) return s;
    return backward(s, "", s.length() - 1);
}

oder so

Java:
static String backward(String s) {
    if(s.length() < 2) return s;
    else return backward2(s.substring(1))+s.charAt(0);
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
G Rekursives Programmieren --> harmonische Reihe Java Basics - Anfänger-Themen 3
S Rekursives Problem.... Java Basics - Anfänger-Themen 16
S Rekursives Durchlaufen eines Verzeichnisses - AccessDeniedException behandeln Java Basics - Anfänger-Themen 1
S Rekursives Zählen einer Zahl Java Basics - Anfänger-Themen 8
J Rekursives Parsen (ohne Reg Expressions) Java Basics - Anfänger-Themen 8
I Rekursives Löschen in Binärem Suchbaum Java Basics - Anfänger-Themen 2
L rekursives spiel programmieren Java Basics - Anfänger-Themen 4
G Rekursives aufrufen führt zu StackOverflowError Panel durchl Java Basics - Anfänger-Themen 5
M Rekursives suchen im TreeMenu Java Basics - Anfänger-Themen 10
N Rekursives suchen in einer Liste Java Basics - Anfänger-Themen 8
G Primzahlentester als rekursives Programm! Java Basics - Anfänger-Themen 13
H Rekursives einlesen von Lokalen Ordner Java Basics - Anfänger-Themen 4
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
Konsii25 Reihen in Java umdrehen Java Basics - Anfänger-Themen 4
B Texte umdrehen Java Basics - Anfänger-Themen 4
T String umdrehen Java Basics - Anfänger-Themen 2
M Array Reihenfolge umdrehen Java Basics - Anfänger-Themen 9
Z Variablen String umdrehen, Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
E Zahl umdrehen? Java Basics - Anfänger-Themen 21
E Zeichenreihenfolge umdrehen Java Basics - Anfänger-Themen 12
1 den Inhalt eines Arrays umdrehen Java Basics - Anfänger-Themen 11
J Array umdrehen Java Basics - Anfänger-Themen 7
J Binärcode - Text umdrehen? Java Basics - Anfänger-Themen 3
T Elemente im Array umdrehen Java Basics - Anfänger-Themen 9
T Ein Feld umdrehen Java Basics - Anfänger-Themen 5
Z Array umdrehen Java Basics - Anfänger-Themen 12
S Polygone umdrehen Java Basics - Anfänger-Themen 15
Y Raute umdrehen Java Basics - Anfänger-Themen 10
J Array umdrehen Java Basics - Anfänger-Themen 3
S Array bei index halbe umdrehen ohne hilfsfeld Java Basics - Anfänger-Themen 13
StrikeTom String umdrehen Java Basics - Anfänger-Themen 4
K Alle noch nicht umgedrehte Karten umdrehen ? Java Basics - Anfänger-Themen 2
J integer vorzeichen umdrehen? Java Basics - Anfänger-Themen 2
Y Vorzeichen umdrehen Java Basics - Anfänger-Themen 13
G rekursiv zahl umdrehen Java Basics - Anfänger-Themen 5
G Dezimalzahl(integer) ziffernweise umdrehen Java Basics - Anfänger-Themen 3
G Ausgabewert umdrehen Java Basics - Anfänger-Themen 3
E ZahlenArray umdrehen Java Basics - Anfänger-Themen 14
Z Methoden Array horizontal spiegeln Java Basics - Anfänger-Themen 19
C Methoden Vertikales spiegeln eines Bildes (zweidimensionale Arrays) Java Basics - Anfänger-Themen 5
C ZweiDimensionales Array erstellen und Spiegeln Java Basics - Anfänger-Themen 1
M String rekursiv Spiegeln mit Originalwort davor Java Basics - Anfänger-Themen 3
M Array horizontal spiegeln Java Basics - Anfänger-Themen 2
E Integer oder Strings spiegeln (in while loop) Java Basics - Anfänger-Themen 6
O Spiegeln der Ausgabenreihenfolge Java Basics - Anfänger-Themen 3
A BufferedImage in Android einbinden - Bild spiegeln -wie? Java Basics - Anfänger-Themen 4
J Histogramm horizontal spiegeln Java Basics - Anfänger-Themen 7
G Image spiegeln Java Basics - Anfänger-Themen 17
N Bild spiegeln Java Basics - Anfänger-Themen 5
K Bild spiegeln Java Basics - Anfänger-Themen 12
S Welche möglichkeiten gibt es eine Zahl zu spiegeln? Java Basics - Anfänger-Themen 17
E Elemente in Arraylist spiegeln? Java Basics - Anfänger-Themen 9
J Baum spiegeln Java Basics - Anfänger-Themen 7
G Exceptions - spiegeln wir da nicht einen Spiegel im Spiegel? Java Basics - Anfänger-Themen 10
V Dreieck spiegeln Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben