Пять вещей я ненавижу о Java:
я знаю, я должен проверить Scala.
Лучшее, с какой точки зрения? Кнут-Моррис-Пратт хороший. Вы можете найти другие из них, обсуждаемые в , в статье Википедии об алгоритмах поиска по строкам .
Это зависит от того, какие типы поиска вы выполняете. Определенная подстрока в определенной строке? Конкретная подстрока из множества разных строк? Множество разных подстрок в определенной строке?
Вот популярный алгоритм для конкретной подстроки по множеству разных строк.
Эта реализация strstr () кажется довольно привлекательной.
Алгоритм Бойера-Мура: http://en.wikipedia.org/wiki/Boyer –Moore_string_search_algorithm