Beschneiden eines Strings ab/bis zu einer bestimmten Position

Über die Methode substring() kann innerhalb einer Schleife ein String so beschnitten werden, dass nur noch der Teilstring vor oder nach einer bestimmten Position zurück gegeben wird.

Die hier vorgestellten Methoden arbeiten intern mit den String-Methoden indexOf() und lastIndexOf().

public class BeschneideString {
    public String cutFront(String txt, String teil, int number) {
        for (int i = 0; i < number; i++) {
            txt = txt.substring(txt.indexOf(teil) + 1, txt.length());
        }
        return txt;
    }

    public String cutBack(String txt, String teil, int number) {
        for (int i = 0; i < number; i++) {
            txt = txt.substring(0, txt.lastIndexOf(teil));
        }
        return txt;
    }
}

Die Methode cutFront() liefert einen Teil-String ab einer bestimmten Position eines Trenner-Strings zurück. Hierzu nimmt sie als Parameter den Text selber txt, den Trenner-String teil und dessen Wiederholungszahl number entgegen. Die Wiederholungszahl ist hierbei sein n-tes Vorkommen.

Bsp.:
Der String "Dru Chunusun mut dum Kuntrubus" soll ab dem 3, "u" zurück gegeben werden:
cutFront("Dru Chunusun mut dum Kuntrubus", "u", 3);   //sun mut dum Kontrubus

Die Methode cutBack() funktioniert auf die gleiche Weise, nur dass hier der Teil bis zum n-ten Vorkommen von teil zurück gegeben wird:

cutBack("Dru Chunusun mut dum Kuntrubus", "u", 3);   //Dru Cunusun mut d

Übrigens: natürlich lässt sich das Ganze auch mit Hilfe von String.split()) lösen. Dies ist jedoch deutlich langsamer.
Die Klasse StringTokenizer, die das Gleiche zu lösen vermag gilt als deprecated und sollte nicht mehr verwendet werden.

Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.