Alle mehrfach vorkommenden Buchstaben rekursiv aus einem String entfernen.

Ich möchte alle mehrfach vorkommenden Zeichen entfernt werden. Aktuell wird nur ein Zeichen entfernt. Z.b: bei ("aabbcc") --> abc und bei ("aaabbbccc") --> aabbcc. Es sollen ebenfalls abc ausgegeben werden. Weiß gerade nicht wo ich was ändern soll.


Java:
String EntferneDoppelte(String s) {
  if (s.length() == 0)
    return s;

  if (s.length() < 2)
    return s;

  if (s.charAt(0) != s.charAt(1))
    s = s.charAt(0) + EntferneDoppelte(s.substring(1));

  if (s.charAt(0) == s.charAt(1))
    return s.charAt(0) + EntferneDoppelte( s.substring(2));

  return s;
}
 
Zuletzt bearbeitet:
Vergiss mal den Code. Nimm Dir mal einen Stück Papier und schreib Dir ein beliebig langes Beispiel drauf. Drunter schreibst Du dann die Lösung, wobei Du genau beobachtest, was Du beim Finden der Lösung Schritt für Schritt machst. Diese Schritte beschreibst Du hier einmal, dann kommen wir vielleicht zu halbwegs vernünftigen Code 🙂
 
Was soll denn z.B. bei "aaccbbcc" ausgegeben werden? "acbc"? "abc"? "acb"?
Ich denke das @Kingamadeus2000 in diesem Fall nur ein "abc" wieder ausgegeben haben will.

Nun dein Code funktioniert ja eigentlich soweit für "aabbcc", weil du jeweils einen Buchstaben entfernst. Und bei "aaabbbccc" funktioniert der Code nicht mehr ganz, weil du in diesem Fall zwei Buchstaben entfernen möchtest statt einem.

Ich würde es mit einer Abfrage versuchen.
 

Zurück
Oben