Я не знаю наверняка, почему было принято это решение, но, если предположить, возможно, это потому, что для небольших строк шаблонов (очень распространенный случай использования) алгоритм наивной грубой силы, вероятно, такой же быстрый, если не быстрее, чем некоторыеиз асимптотически более быстрых алгоритмов, таких как Рабин-Карп, Бойер-Мур или Кнут-Моррис-Пратт.Это похоже на разумный алгоритм по умолчанию, так как во многих случаях вы будете искать небольшие шаблоны для небольших шаблонов, и издержки от мощной согласованной установки, вероятно, будут сопоставимы с временем выполнения наивного подхода.
Это сказалонигде в спецификации Java не предусмотрено использование этого алгоритма.Они могли бы так же легко выбрать Рабина-Карпа, как алгоритм по умолчанию.
Другая причина, по которой они выбрали этот подход, заключается в том, что если вы хотите выполнить быстрый поиск текста, библиотека регулярных выражений обеспечивает более быстрое сопоставление строк с большим количествоммощные возможности поиска.Предоставление пользователям простого алгоритма грубой силы по умолчанию и возможность переключения на более мощный набор инструментов, когда это необходимо, кажется хорошим способом сбалансировать асимптотическую эффективность с практической эффективностью.