Methoden String wird in Rekursion nicht überschrieben

Escape99X

Mitglied
Hallo,
ich habe folgendes Problem:
Ich habe Strings mit Musikdateinamen, die mit .mp3 enden. Manchmal steht diese Dateiendung jedoch mehrmals hinter der Datei, z.B. Dateiname.mp3.mp3
Nun möchte ich alle Endungen mit einer rekursiven Methode löschen:
Java:
private String filterExtensions(String s) {
        s = s.substring(0, s.length()-4);
        if (s.contains(".")) {
            filterExtensions(s);
        }
        return s;
    }
Diese Methode führe ich mit
Code:
System.out.println(filterExtensions(name));
aus.
Eine Dateiendung wird bei der Ausgabe immer gelöscht, alle weiteren jedoch nicht. Wenn ich in der Methode zwischendrin den Dateiname ausgebe, sehe ich, dass die Rekursion ausgeführt wird und der String auch weitere Male verkürzt wird, aber bei der Ausgabe wird immer nur eine Dateiendung gelöscht.
Ich hoffe, ich habe das Problem verständlich geschildert 🙂
Vielen Dank für eure Antworten
 
Java:
private String filterExtensions(String s){
        s = s.substring(0, s.length()-4);
       if(s.contains(".")){
            s = filterExtensions(s);
       }
       return s;
   }

Du musst die Rekursion wieder s zuweisen, ansonsten erstellst du immer neue Strings, die aber im Nirwana verschwinden
 

Neue Themen


Zurück
Oben