ich soll die Buchstaben eines String "Haus" um den Wert 3 verschieben, sodass der Computer am Ende "ausH" zurück gibt. Leider hab ich keine Ahnung wie ich das machen soll. Kann mir jemand nur in Worten beschreiben wie der Code auszusehen hat, ich versuch's dann selbst umzusetzen.
Du hast einen String sentence.
Mit Hilfe der Methode substring der Klasse String kannst du die letzten drei Buchstaben herausfinden und ebenso alles, was davorsteht. Diese beiden Teile musst du nur vertauschen.
Der Thread ist sehr alt - da wirst Du so vermutlich keine Antwort mehr bekommen. Daher wäre es ggf. ratsam, einfach einen eigenen Thread zu eröffnen und darin zu beschreiben, wo denn das Problem genau ist bzw. was Du denn schon hast.
Es ist unnötig, mehrfach um 1 zu verschieben. Der Aufbau ist ja immer gleich:
Man unterteilt den String in zwei Teilstrings und stellt diese in umgedrehter Reihenfolge aneinander.
Bei einer Drehrichtung ist die Trennstelle gleich der gewünschte Anzahl der Verschiebungen
In der anderen Richtung ist das aber leider nicht der Fall.
Aber man hat ja die Länge des Strings ... und da kann man dann ja was abziehen. Das muss man sich jetzt nicht einmal im Detail über die Dokumentation der Methode substring herausfinden sondern man kann es einfach mal testen:
war ja der Code, den der TE schon herausgefunden hat.
Da einfach mal ein sentence und ein wert vorgeben. Und dann schauen, was raus kommt. Bei "Hallo" kann man für Wert diverse Werte vorgeben:
0 -> Hallo
1 -> alloH
2 -> lloHa
3 -> loHal
4-> lHall
5 -> Hallo
Die Länge war 5 Zeichen und nun kann ich je nach Richtung doch eine einfache Regel erkennen:
In die eine Richtung ist es einfach die Anzahl der Stellen, die verschoben werden soll.
In die andere Richtung hast Du 5-Anzahl und 5 ist ja die Länge.
Der Algorithmus bleibt also gleich, nur die Position des Schnittes wird einmal angepasst.
@d_43 Ich denke, damit hast Du Deinen Algorithmus aus, oder?
Nein, so unleserlichen Code würde ich jedem um die Ohren hauen. Wieso Du meinst, Code immer so extrem unleserlich und überkompliziert schreiben musst, werden wir hier wohl auch nie verstehen. Und was hat dein Code mit der Aufgabenstellung zu tun?
Ich sitze hier bei Deinen Posts immer da und frage mich: Was willst Du mir oder dem TE sagen? Wem glaubst Du, helfen Deine Aussagen?
Der Algorithmus, den der TE schreiben soll, ist sehr einfach. Da ist nichts komplexes bei. Aus dem bereits vorhandenen Code lässt sich dies einfach bauen. Der Algorithmus lässt sich einfach erläutern und auch herleiten.
Wenn man String.substring nicht nutzen dürfte, dann wäre die Frage: was darf genutzt werden? Und dann wäre es auch nicht deutlich komplizierter. Dann hat man halt eine Schleife, die Zeichen einzelnd kopiert. Oder wenn ein modulo Operator zu kompliziert scheint, dann hat man halt zwei Schleifen.
Wenn Du da irgendwelche Argumente im Kontext des Threades hättest, dann würde ich so ein Urteil evtl. einsehen. Aber so ist das doch nur herumtrollen. Der kleine Tobias will aus dem Bällespieleparadies abgeholt werden?
Es ist unnötig, mehrfach um 1 zu verschieben. Der Aufbau ist ja immer gleich:
Man unterteilt den String in zwei Teilstrings und stellt diese in umgedrehter Reihenfolge aneinander.
Bei einer Drehrichtung ist die Trennstelle gleich der gewünschte Anzahl der Verschiebungen
In der anderen Richtung ist das aber leider nicht der Fall.
Aber man hat ja die Länge des Strings ... und da kann man dann ja was abziehen. Das muss man sich jetzt nicht einmal im Detail über die Dokumentation der Methode substring herausfinden sondern man kann es einfach mal testen:
war ja der Code, den der TE schon herausgefunden hat.
Da einfach mal ein sentence und ein wert vorgeben. Und dann schauen, was raus kommt. Bei "Hallo" kann man für Wert diverse Werte vorgeben:
0 -> Hallo
1 -> alloH
2 -> lloHa
3 -> loHal
4-> lHall
5 -> Hallo
Die Länge war 5 Zeichen und nun kann ich je nach Richtung doch eine einfache Regel erkennen:
In die eine Richtung ist es einfach die Anzahl der Stellen, die verschoben werden soll.
In die andere Richtung hast Du 5-Anzahl und 5 ist ja die Länge.
Der Algorithmus bleibt also gleich, nur die Position des Schnittes wird einmal angepasst.
@d_43 Ich denke, damit hast Du Deinen Algorithmus aus, oder?