Стандартная функция Kotlin в этом случае не только улучшит читабельность, но и производительность. Оптимизированная реализация Java, которая делает то же самое, что и функция Kotlin contains()
, требует написания еще большего количества кода или использования внешней библиотеки, такой как Commons Lang:
// Java public static boolean containsIgnoreCase(String str, String searchStr) { if (str == null || searchStr == null) return false; final int length = searchStr.length(); if (length == 0) return true; for (int i = str.length() - length; i >= 0; i--) { if (str.regionMatches(true, i, searchStr, 0, length)) return true; } return false; } ... if (containsIgnoreCase(name, firstName)) { ... } // Kotlin if (name.contains(firstName, ignoreCase = true)) { ... }
Интуитивно понятный подход к преобразованию обеих строк в нижний регистр сначала требует создания 2 временных экземпляров строк и преобразования каждой строки в нижний регистр, в то время как функция Kotlin будет сравнивать обе строки напрямую без предварительного преобразования.