erstes Vorkommen eines Chars aus einem String entfernen

JavaKev

Mitglied
Hallo liebe Community, ich soll folgende Aufgabe lösen:
Schreiben Sie eine Methode public static String entferne(String s, char c), die das erste Vorkommen des Characters c im String s entfernt und den Reststring zurückgibt. Wenn c nicht in s vorkommt, wird s zurückgegeben.
Nun habe ich folgende Methode dazu geschrieben:
Java:
public static String entferne(String s, char c) {
        for (int i = 0; i <= s.length()-1; i++) {
            if (s.charAt(i) == c) {
                s = s.replace(c, ' ');
            }
        }
        return s;
}
ich habe nun das Problem, dass zwar der char entfernt wird, aber nicht das erste Vorkommen, sondern jeder char in diesem String. Mit replaceFirst funktioniert es ja nicht, weil dafür zwei Strings und kein char erwartet wird. Habt ihr vielleicht noch einen Verbesserungsvorschlag?
 
Mit replaceFirst funktioniert es ja nicht, weil dafür zwei Strings und kein char erwartet wird. Habt ihr vielleicht noch einen Verbesserungsvorschlag?
Du kannst deinen String auch entsprechend umwandeln:
#Edit, ouh ja guter Hinweis, fast verpennt mit dem Regex, habs mal angepasst 😉
Java:
    public static String entferne(String s, char c) {
        return s.replaceFirst(Pattern.quote(String.valueOf(c)), "");
    }

Ich würde aber eher vermuten, dass ihr hier keine Standardmethode nutzen sollst, sondern das selbst implementiert 😉
 
Zuletzt bearbeitet:
String.replaceFirst ist gefährlich, da es sich dabei um einen regulären Ausdruck handelt. Wenn das Zeichen z.B. '?' ist, gibt es schon Probleme. Kann man natürlich durch explizites Escaping lösen.
 

Neue Themen


Zurück
Oben