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

    @rPman
    В твоем варианте каждый replace копирует предыдущую строку в новую.

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

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