Selbstverständlich kann man mit Java mittels RegEx, Strings in Strings suchen. Um Regex zu vermeiden, gibt es die möglichkeit folgendes Codebeispiel zu nutzen um Strings in Strings zu finden:
/* * Beispiele erstellt von Emanuel Seibold * Quelle EBooks, Tutorials */ package tutorialzahlen; public class Main { public static void main(String[] args) { String text = "hier abc noch abc foobar abc"; int found = 0; int pos = indexOfString(text, "abc", found); while ((found = indexOfString(text, "abc", found)) != -1) { ++found; } } public static int indexOfString(String t, String s, int pos) { String tmp; int lenText = t.length(); int lenSearched = s.length(); int found = pos; while ((found = t.indexOf(s.charAt(0), found)) != -1) { if (found + lenSearched <= lenText) { tmp = t.substring(found, found + lenSearched); if (tmp.equals(s)) { break; } } ++found; } return found; } }
2 Antworten für "String in String suchen"
Na, es geht ja auch umständlich wenn es einfach geht
Sonderlich effizient ist der Code nicht, für einmal suchen wird ein Zeichen abgefragt, ein Substring extrahiert und dann noch zeichenweise verglichen.
Es gibt String.indexOf(String) und Varianten für die gleiche Aufgabe, wohlgemerkt ohne reg. Ausdrücke.
@Joe:
Das stimmt so nicht ganz.
String.indexOf(String) sucht nur das erste Vorkommen des gesuchten Strings. D.h. wenn der String z.B. vier mal in einem Text vorkommt, dann wird .indexOf(String) dies nicht finden.
Die Lösung von Emanuel würde den String jedoch vier mal finden!
Kommentar verfassen