replaceFirst("Vorgabe", "zu entfernendes Zeichen")

kodela

Bekanntes Mitglied
Hallo,

ich habe ein kleines "Progrämmchen" geschrieben, in dem von einem vorgegebenen Wort immer wieder ein Buchstabe entfernt wird. Die dafür zuständige Methode sieht so aus:
Java:
   /**
    * Entfernt eingegebenen Buchstaben aus der Kopie einer Vorgabe und soll verhindern, 
    * dass ein bereits einmal verwendeter Buchstabe aus der Vorlage noch einmal entfernt wird.
    * @param a char-Zeichen
    */
   public void entferneZeichen(char a) {
      String sa = Character.toString(a);
      testVorgabe = testVorgabe.replaceFirst(sa, "");
   }
Diese Methode hat einwandfrei funktioniert bis ich an dem Programm eine simple Änderung vornahm, die rein gar nichts mit obiger Methode zu tun hat. Nach dieser Änderung (eingegebene Wörter wurden durch eine Leerstelle getrennt und werden jetzt durch ein Komma plus Leerstelle getrennt) ersetzt replaceFirst(sa, "") nichts mehr. Mit Projektsicherungen aus der Zeit vor der erwähnen Änderung funktioniert alles so wie es soll.

Ich weiß, das klingt verrückt, so verrückt, dass ich Hemmungen hatte, dies hier zu schreiben, aber mir fällt nichts mehr ein, als zu einer Vorgängerversion zurück zu gehen und die letzte Änderung dort einzuarbeiten. Das halte ich auch für blöd.
 

mihe7

Top Contributor
Dazu müsste man wesentlich mehr sehen. Aber, mach doch einfach mal folgendes: setz Haltepunkte an den Stellen, an denen entferneZeichen aufgerufen wird. Starte den Debugger und schau Dir testVorgabe und den übergebenen Paramater genau an und prüfe nach dem Ausführungen von entferneZeichen den Spaß noch einmal.
 

Blender3D

Top Contributor
Diese Methode hat einwandfrei funktioniert bis ich an dem Programm eine simple Änderung vornahm, die rein gar nichts mit obiger Methode zu tun hat.
Also falls diese Änderung auf keinen Fall die Benutzung der Klassen Variable testVorgabe oder den übergebenen Parameter a betrifft, sollte sich am ursprünglichen Verhalten dieser Funktion auch nichts geändert haben.
Die Funktion entfernt das erste gefundene Zeichen aus der Klassen-Variable testVorgabe, falls es dort vorhanden ist.
Sie stellt aber auf keinen Fall sicher, dass bei einem erneuten Aufruf ein weiteres solches Zeichen noch einmal entfernt wird.
Somit ist die Hilfe deiner Funktion nicht richtig formuliert. Ich denke du machst das an einer anderen Stelle. Es ist eine öffentliche Funktion und kann daher beliebig von außen benutzt werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Sortieren nach Vorgabe Allgemeine Java-Themen 6

Ähnliche Java Themen


Oben