[Intersult Automaton] ist ein Tool zum Auffinden von Wörtern in Zeichenketten bzw. Sequenzen in Daten.

!!!Hintergrund
Das Auffinden von Wörtern in Zeichenketten findet im einfachsten Fall dadurch statt, indem an jeder Stelle nach dem Wort gesucht wird. Wird gleichzeitig nach vielen Wörtern gesucht, steigt der Aufwand enorm. [Intersult Automaton] löst das Problem effizient, das heißt nahezu linear zur Länge der zu durchsuchenden Zeichenkette.

!!!Anwendung
Ein neu erzeugter Automat wird zunächst mit den gesuchten Zeichenketten bestückt, ähnlich einer Map. Anschließend kann der Automat unterschiedliche Operationen durchführen:

* __Ersetzen von Zeichenketten:__ Die Methode replace ersetzt effizient alle gefundenen Keys durch entsprechende Values.
* __Prefix finden:__ Findet als Prefix enthaltene Keys.
* __Suffix finden:__ Findet als Suffix enthaltene Keys.
* __Scanner:__ Manuelles Scannen von Zeichenfolgen. Damit können beliebige Logiken implementiert werden. Dem Scanner werden die Zeichen der Reihe nach präsentiert und er liefert als Antwort, ob an dieser Stelle eine passende Zeichenkette vorliegt.

!!!Beispiele
!Suchen und Ersetzen
{{{
	CharAutomaton<String> automaton = new CharAutomaton<String>();
	automaton.add("eins", "s1");
	automaton.add("zwei", "s2");
	automaton.add("drei", "s3");
	CharSequence result = automaton.replace(SOURCE);
}}}

!!!Details
Es handelt sich um einen Zustandsautomat, der mit dem Algorithmus von Aho und Corasick erstellt wurde. Der Automat enthält zum Beispiel für 340 deutsche Wörter 2100 Zustände mit entsprechenden Zustandsübergängen.