Как вывести строку в обратном порядке на Java? 4 способа реверса строки

Как вывести строку в обратном порядке на Java? 4 способа реверса строки

В этой короткой заметке мы рассмотрим несколько способов вывести строку в обратном порядке: напишем парочку своих «велосипедов» и посмотрим на возможности реверса строк, которые предоставляет Java из коробки.

Способы перевернуть строку в Java

В примерах ниже мы попробуем вывести строку в реверсном режиме разными способами, а именно: рекурсивно и с использованием методов charAt(), toCharArray() и StringBuffer().

Рекурсивный метод

Первым делом давайте попробуем реализовать вывод строки в обратном порядке с помощью «велосипедной рекурсии» :).

Суть этого метода сводится к тому, чтобы рекурсивно разделять входную строку на две части, уменьшая с каждым разом длину входной строки. Как только длина этой строки уменьшится до одного символа, это будет означать, что переворачивание фрагмента закончено и эти фрагменты будут собраны воедино. В итоге на выход мы получаем новую строку в обратном порядке:

Рекурсивный метод на выход выдаст тот же результат.

Переворачиваем строку с помощью charAt()

Другим способом является проход по символам в строке с помощью метода charAt() и сохранение строки с обратным порядком символов. Смотрим на примере:

В коде выше мы в цикле обходим входную строку и по индекску забираем символ. Далее пересоздаем результирующую строку с новым символом вначале.

Выводим строку в обратном порядке с помощью toCharArray()

Этот способ очень похож на предыдущий, но вместо charAt() мы представляем строку в виде массива символов используя метод toCharArray() и затем в обратном порядке присваиваем символы результирующей строке. Смотрим пример:

Используем StringBuffer или StringBuilder для переворачивания строки в Java

В этом способе мы воспользуемся методами для вывода строки в обратном порядке, которые строенны в Java и не требуеют с нашей стороны никаких обработок. Все, что нам нужно использовать — это класс StringBuffer и его метод reverse():

Вот так в две строчки кода мы избавились от необходимости писать отдельные методы для переворота строки — Java за нас делает всю работу. Интересно знать, что внутри метода reverse() происходит сложный процес создания новой перевернутой строки со множеством проверок и оптимизаций быстродействия, о которых мы не задумывались в наших тестовых программках.

Подробнее о работе со строками читайте здесь.

Используете ли вы какой-то из этих способов в своих проектах? Также пишите свои методы в комментариях!

5 thoughts to “Как вывести строку в обратном порядке на Java? 4 способа реверса строки”

  1. В «велосипедной рекурсии» возвращает это:

    return reverseStringWithRecursion(rightPart) + reverseStringWithRecursion(leftPart);

    Тут точно никакой ошибки? если нет, то объясните, как вычислении возвращаемого значения может вызываться та же самая функция? Я в этом деле пока новичок…

  2. В общем случае вместо StringBuffer рекомендуется использовать StringBuilder, у него тоже есть метод reverse().

  3. Способ «Переворачиваем строку с помощью charAt()» неправильно написан, строка будет в том же порядке
    Надо поправить направление цикла, с конца.

Добавить комментарий для Heretic Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *