Mit was durchsuche ich Text am schnellsten

Dolch

Mitglied
mal eine Frage an die Leute die von Performence Ahnung haben,

ich möchte ein Text nach verschiedenen Zeichenfolgen durchsuchen (bestimmte Begriffe aber auch verschiedene Formate (bspw. Emailadressen oder Webseiten).

Ich persönlich würde einfach den Text in Form eines Strings aufnehmen und dann den String halt nach allen durchsuchen was ich gerne finden würde, ist nur die Frage bei Texten die i.d.R. so 3-15 A4 Seiten haben können, ob die Klasse String dann nicht etwas langsam wird?
 
Hallo,

nach was willst du denn genau suchen? Willst du exakt nach einem String oder nach einem
Pattern oder unscharf (fuzzy) suchen?
Wenn du exakt suchen möchtest kannst du IMHO die indexOf Version von String verwenden, die ist immernoch schnell genug für die genannten String größen.

Ansonsten gibt es diverse Textsuchverfahren:
Knuth-Morris-Pratt (KMP)
Boyer-Moore (BM)

Ansonsten bliebe immer noch ein Regex Pattern Matcher oder Lucene. http://javolution.org/ Javolution hat auch eine schnelle Text/TextBuilder Klasse.

Gruß Tom
 
Was suche ich:
- hauptsächlich genaue Strings(wobei das natürlich einige sind) <-- werde hier mit indexof arbeiten
- sonst können regelmäßig e-mail adressen vorhanden sein <-- mit matches(".+@.+\\..+")
- das nächste was mir jetzt noch einfällt wären Webseiten <-- ... indexof mit www bzw. http sollte eigentlich reichen

:-D naja ich schreib einfach mal drauf los und hoffe das was anständiges rauskommt
 
Zurück