@ProstoDrug

Как оптимизировать return выражение?

Добрый день!
Прошу подсказать, куда копать и что можно посмотреть?
Вопрос: необходимо оптимизировать return выражение:
return inputComponent.replaceAll("\"", "'").replaceAll("\n", "").replace("[]", "{}");

Далее необходимо вынести код return выражения в отдельный метод и покрыть тестами.
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
В твоем варианте каждый replace копирует предыдущую строку в новую.

Логика подсказывает что если проходить посимвольно по строке и проверять значение символа и заменять его на другой в новой строке будет эффективнее по всем параметрам. Новую строку лучше создавать через StringBuilder, так как он эффективно добавляет символы к строке (иначе попытка использовать += к строке будет постоянно ее копировать).

Так же рекомендуется для проверки символа использовать не кучу if-ов а switch case (оно преобразуется в эффективную таблицу переходов) либо самостоятельно подготовить массив (у тебя речь идет о кодах <256) из 256 строк, где каждая строка либо null (не проводить замену) либо строка, на которую нужно провести замену. Тогда вместо проверки символа по условию будет достаточно брать код символа charAt и проверять что его значение не выходит за пределы массива.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы