This website is a great resource for exact string searching algorithms.
High-performance pattern matching in Java for general string searching, searching with wildcards, and searching with character classes.
Program Brute.java is brute force string search. Essentially equivalent to SystemSearch.java.
Rabin-Karp.
Program RabinKarp.java implements the Rabin-Karp randomized fingerprint algorithm.
Knuth-Morris-Pratt.
Program KMP.java is Knuth-Morris-Pratt algorithm. KMPplus.java is an improved version that takes time and space proportional to M + N (independent of the alphabet size R).
Boyer-Moore.
Program BoyerMoore.java implements the bad-character rule part of the Boyer-Moore algorithm. It does not implement the strong good suffix rule.
Intrusion detection systems.
Need very fast string searching since these are deployed at choke points of networks. Application
http://algs4.cs.princeton.edu/53substring/