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.