In Java contains()
или in
оператор Groovy проверяет точное совпадение на основе простой строки и в основном является ярлыком для -1 != str.indexOf('aaa')
.
С другой стороны, matches()
в java или ==~
и =~
в groovy вводят накладные расходы на сопоставление шаблонов Regex и работают несколько медленнее. Это цена, которую вы платите за мощность и гибкость регулярного выражения.
Возвращаясь к вашему варианту использования, я думаю, что стоимость производительности matches()
по сравнению с contains()
несущественна, так как HTTP-запрос принимает значения время для выполнения больше.
В этом случае я бы использовал go для решения с большей читабельностью и гибкостью, что было бы способом регулярного выражения. С другой стороны, если вам действительно нужно точное совпадение, вы должны придерживаться contains
.
Помимо вышеупомянутого, если вам действительно нужна последняя капля производительности, вы должны сами запустить нагрузочные тесты обоих методов. .