Wie bekomme ich das Zeichen 'digit' an vorderster Stelle

Reykja

Aktives Mitglied
Aufgabenstellung: die Methode verschiebt eine Ziffer innerhalb des Strings text an vorderster Stelle. Es geht wieder um Rekursion weshalb keine Schleifen verwendet werden dürfen.
zB
shiftDigitLeft("zm7na") liefert "7zmna"

Java:
  private static String shiftDigitLeft(String text) {
        if (text.isEmpty()) {
            return text;
        }
        char digit = text.charAt(0);
        if (digit >= '0' && digit <= '9') {
            return shiftDigitLeft(text.substring(1)) + digit;
        } else {
            return text.charAt(0) + shiftDigitLeft(text.substring(1));
        }
    }
 public static void main(String[] args) {
     System.out.println(shiftDigitLeft("zm7na"));
     System.out.println(shiftDigitLeft("ohneziffer"));
     assert (shiftDigitLeft("zm7na").equals("7zmna"));
     assert (shiftDigitLeft("ohneziffer").equals("ohneziffer"));

Bei mir wird allerdings die Ziffer an letzter Stelle ausgegeben. Ich hab dieses Mal leider gar keine Idee was ich machen könnte..
 
K

kneitzel

Gast
Dann beschreibe doch bitte einfach einmal den Algorithmus in eigenen Worten und das möglichst detailiert.
Oder spiel den Algorithmus mit Stift und Papier einmal im Detail durch.

Wie musst du vorgehen, wenn du Zeichen am Anfang und nicht am Ende haben willst? Sobald Du es aktiv durchspielst, solltest Du die Problematik erkennen und lösen können.
 

httpdigest

Top Contributor
Ist im Prinzip dasselbe wie die vorherige Aufgabe, nur musst du den Text jetzt nicht von links nach rechts rekursiv "zerschneiden"/verarbeiten, sondern von rechts nach links, so dass du bei jedem Rekursionsschritt in der Lage bist, eine im "aktuellen" String hinten gefundene Ziffer sofort nach vorne zu schieben.
 

MoxxiManagarm

Top Contributor
Du solltest es dir vielleicht mal aufmalen was passiert. In deinem Fall musst nu nämlich den Shifted Substring betrachten.
Also:
Das erste Zeichen wegnehmen (speichern) und den Rest rekursiv bearbeiten. Der shifted Rest hat die Zahl an vorderster Stelle. Du hast also dann dein Zeichen (im ersten Rekursionsschritt ist es bei dir 'z') und den shifted Rest ("7mna"). Dann führst du diese beiden Hälften zusammen, so dass die 7 dann vorne steht.
 

Reykja

Aktives Mitglied
Java:
 private static String shiftDigitLeft(String text) {
        if (text.length()<2)
            return text;

        String s = shiftDigitLeft(text.substring(1));
        char digit = s.charAt(0);
        if (digit >= '0' && digit <= '9') {
            return digit + "" + text.charAt(0) + s.substring(1);
        } else
            return text;
    }
Ich weiß zwar nicht ob's noch besser geht, hab's aber schlussendlich so gelöst.
Danke für eure Hilfe!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java Editor Bekomme bei der Code-Vervollständigung die Zeichen &#8203; Allgemeine Java-Themen 3
Y Wie bekomme ich durch getImage an das Image heran? Allgemeine Java-Themen 1
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
Drachenbauer warum bekomme ich hier eine NullPointerException Allgemeine Java-Themen 6
D Compiler-Fehler JavaFX - Bekomme Fehlermeldungen nicht weg Allgemeine Java-Themen 31
coolian warum bekomme ich ein string index out of bounds exception Allgemeine Java-Themen 17
J wo bekomme ich Java5 her? Allgemeine Java-Themen 11
Thallius Bekomme keine Exception mit Stacktrace mehr. Was habe ich getan? Allgemeine Java-Themen 13
Exdroid BlueJ Wie bekomme ich die Ausgabe in eine TXT Datei? Allgemeine Java-Themen 2
C Was bekomme ich eine Nullpointerexception? (Apache POI) Allgemeine Java-Themen 3
S Bekomme mit Scanner und URL keine Html-Seite ausgelesen Allgemeine Java-Themen 3
S Wie bekomme ich an spezielle Glyph-Kombinationen die ein Font bereithaelt? Allgemeine Java-Themen 6
S AWT Wie bekomme ich eine Liste aller chars in einem Font? Allgemeine Java-Themen 3
S Bekomme nullwerte bei methodenaufruf in versch. Klassen Allgemeine Java-Themen 16
K Bekomme JUnit TEst nicht zum laufen :( Allgemeine Java-Themen 9
T Wie bekomme ich den Pfad ohne Dateiname? Allgemeine Java-Themen 2
F Woher bekomme ich "dlib" oder: Interpreter-Program Allgemeine Java-Themen 2
W Umlaute umwandeln bekomme nur Leerzeichen raus. Allgemeine Java-Themen 11
der JoJo [TreeSelection] wie bekomme ich alle Elemente Allgemeine Java-Themen 4
N Hilfe: Bekomme statt '>' '&gt;' . Allgemeine Java-Themen 11
M Wie bekomme ich Threadsdazu parallel zu arbeiten? Allgemeine Java-Themen 13
E Wie bekomme ich mein Image in das Fenster Allgemeine Java-Themen 2
A Auf Java 5 umgestellt und bekomme 101 Warnungen. Allgemeine Java-Themen 5
F Wie bekomme ich die aktuelle aufgerufene Methode herraus? Allgemeine Java-Themen 6
W Umlaute in Dateien und Verzeichnissen. Bekomme Fehler Allgemeine Java-Themen 5
C JNI, wie bekomme ich das HWND zu einem JWindow oder Window? Allgemeine Java-Themen 3
C wie bekomme ich ToolTips in den Vordergrund? Allgemeine Java-Themen 3
N Bekomme NIE ein TRUE obwohl ich es bekommen müsste :( Allgemeine Java-Themen 10
Z Woher bekomme ich Icon's? Allgemeine Java-Themen 2
A wie bekomme ich Applikation zum Laufen Allgemeine Java-Themen 3
B Wie bekomme ich den Wert aus der For-Schleife? Allgemeine Java-Themen 5
S Wie bekomme ich den keySet einer inneren HashMap?? Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
S Zeichen | in regex Allgemeine Java-Themen 8
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
M Checkstyle 100 Zeichen pro Zeile Allgemeine Java-Themen 11
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
Master3000 Komisches Zeichen als Ausgabe in der Konsole Allgemeine Java-Themen 20
M Warum gibt es Unterschiedliche Kommentar Zeichen Allgemeine Java-Themen 15
N Überprüfung ob ein bestimmtes Zeichen <1 mal vorkommt Allgemeine Java-Themen 2
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
G Übermittlung zusätzlicher ASCII-Zeichen bei Übertragung von Dateiinhalt mit Xmodem - JAVA Allgemeine Java-Themen 9
S [Regex] Nur diese Zeichen beachten Allgemeine Java-Themen 1
Bluedaishi Zeile um zeichen erweitern Allgemeine Java-Themen 9
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
Xge Replace x Zeichen aus String Allgemeine Java-Themen 2
E Compiler-Fehler Unicode Zeichen einlesen Allgemeine Java-Themen 1
U Variablen Stringarrays mit wenig verschiedenen Zeichen effizienter speichern Allgemeine Java-Themen 10
T xls-Datei per Apache Commons CsvParser einlesen UTF-8 Zeichen russische Zeichen Allgemeine Java-Themen 2
AssELAss String jeweils nach x Zeichen Zeilenumbruch Allgemeine Java-Themen 1
DStrohma Input/Output KeyEvent nur verarbeiten wenn es ein "sichtbares" Zeichen ist? Allgemeine Java-Themen 1
B In Java String ein + Zeichen Allgemeine Java-Themen 4
AssELAss Zeilenumbruch immer nach bestimmtem Zeichen Allgemeine Java-Themen 1
J Anzahl der Zeichen bei Eingabe begrenzen Allgemeine Java-Themen 5
V Tastendruck für UTF-8 Zeichen emulieren Allgemeine Java-Themen 4
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
C Hex Zeichen ersetzen durch leer Zeichen Allgemeine Java-Themen 5
R Besondere Zeichen in Dateinamen Allgemeine Java-Themen 4
B Alt-Griechisch Zeichen in Dateien Allgemeine Java-Themen 2
G AES Verschlüsselung nur bis 63 Zeichen Länge Allgemeine Java-Themen 2
M Fehlende Zeichen beim Drucken mit PDFBox Allgemeine Java-Themen 10
J String nur erste Zeichen vergleichen Allgemeine Java-Themen 6
C Variablen $-Zeichen in String ersetzen Allgemeine Java-Themen 3
S String Zeichen für Zeichen vergleichen Allgemeine Java-Themen 4
L Problem bei ausführbarer jar Datei mit Unicode-Zeichen Allgemeine Java-Themen 4
S String in Double - letztes Zeichen fehlt Allgemeine Java-Themen 4
A Erstes Zeichen im String "toUpperCase"n Allgemeine Java-Themen 11
A Umwandlung von Text/Zeichen in Polynome Allgemeine Java-Themen 8
cedi int Zahl in ein ASCII zeichen umwandeln und dieses in ein externes Textfenster schreiben Allgemeine Java-Themen 6
K String: alle X Zeichen Zeilenumbruch Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
Zettelkasten Aus String bestimmtes Zeichen herausfinden Allgemeine Java-Themen 19
M Asterisk in String ("Egal-Zeichen") Allgemeine Java-Themen 4
V Chinesische Zeichen Escapen Allgemeine Java-Themen 4
I Teilweise falsche Darstellung jap. Zeichen im JEditorPane mit RTFEditorKit aus RTF-Datei Allgemeine Java-Themen 5
D Datei mit allen Ascii Zeichen Allgemeine Java-Themen 2
R Unsichtbare Zeichen Allgemeine Java-Themen 7
U Namen von Klassen haben $-Zeichen Allgemeine Java-Themen 5
P RegEx und $-Zeichen als Literal Allgemeine Java-Themen 5
neonfly Anzahl Zeichen pro Zeile auf der Konsole Allgemeine Java-Themen 8
C Strings zwischen 2 Zeichen auslesen Allgemeine Java-Themen 7
A Zeichen beim Eingeben in ein DOS-Fenster nicht anzeigen? Allgemeine Java-Themen 3
F Hexcode von ASCII Zeichen erhalten Allgemeine Java-Themen 2
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
V Dateien mit &-Zeichen im Namen öffnen Allgemeine Java-Themen 13
N String in einzelne Zeichen zerlegen Allgemeine Java-Themen 8
M Problem mit Zeichen aus einer Datei auslesen Allgemeine Java-Themen 2
T Shapes vergleichen? Zeichen erkennen? Allgemeine Java-Themen 7
G String.replaceall - mehrere Zeichen durch eines ersetzen Allgemeine Java-Themen 5
G Tschechische Zeichen in XML-Antwort Allgemeine Java-Themen 22
J Encoding und Gewinnung von Zeichen aus der Hexa-Darstellung Allgemeine Java-Themen 6
N Xor Warum kommt Flasches Zeichen in Java Allgemeine Java-Themen 36
S Stringarray splitten an unbekanntem Zeichen Allgemeine Java-Themen 7
A Dezimalzahlen: Komma-Zeichen Allgemeine Java-Themen 4
T Einzelnes Zeichen von der Tastatur einlesen, aber ohne Enter Allgemeine Java-Themen 4
S Was bedeutet dieser Zeichen Allgemeine Java-Themen 4
E Wie Zeichen eingeben mit Klasse Scanner? Allgemeine Java-Themen 5
S Zeichen, dass Programm noch läuft Allgemeine Java-Themen 3
M Anwendung nur einmal starten / Zeichen in String zählen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben