Beschneiden eines Strings ab/bis zu einer bestimmten Position
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.