Дополнительно
Перевернуть строку в Java
У меня есть "Hello World"
, хранящийся в переменной String с именем hi
.
Мне нужно напечатать его, но в обратном порядке.
Как я могу это сделать? Я понимаю, что в Java уже есть какая-то встроенная функция, которая это делает.
Похожие вопросы: Обратный перевод каждого отдельного слова строки "Hello World" с помощью Java
434
20
Вы можете использовать это:
Или, для версий более ранних, чем JDK 1.5, используйте
java.util.StringBuffer
вместоStringBuilder
- у них одинаковый API. Спасибо комментаторам за указание на то, чтоStringBuilder
предпочтительнее в настоящее время, когда нет проблем с параллелизмом.Для онлайн проблемы судей, что не позволяет
класса StringBuilder или StringBuffer
, вы можете сделать это в место черезтипа char[]
следующим образом:http://www.java2s.com/Code/Java/Language-Basics/ReverseStringTest.htm
Я делаю это с помощью следующих двух способов:
Обратная строку символов:
Обратная строку на слова:
Взгляните на языке Java 6 API в StringBuffer
Вот пример использования рекурсии:
Я попробовал, просто ради удовольствия, с помощью стека. Вот мой код:
Вот это низкая уровень:
Поскольку ниже способ (используя исключающее или) в реверс строки не числится, я прилагаю этот метод для обратного строку.
В алгоритм базируется на :
Фрагмент кода:
Выход:
keetarp
Как другие указали предпочтительный способ заключается в использовании:
новое окно инструментов(привет).обратный().метод toString()
но если вы хотите реализовать это с себя, я'боюсь, что остальные ответы есть недостатки.
Причина в том, что строки представляют собой список Юникод точек, закодированных в массив char[]` по переменной длиной кодирования: в UTF-16.
Это означает, что некоторые кодовые точки использовать один элемент массива (один код подразделения), а другие используют их два, так что может быть пар персонажей, которые должны рассматриваться как единое целое (подряд на "высокой" и "низкий" и суррогаты)
Это очень простой в минимальном код строк
Я использовал этот метод, чтобы включить имена в обратном направлении и в нижнем регистре.
Это сделал трюк для меня
1. Используя Символьный Массив:
2. Использование Класса StringBuilder:
Или
Процедура :
Мы можем использовать сплит() для разбиения строки .Затем с помощью обратной петли и добавить персонажей.
Фрагмент кода:
Просто для удовольствия..:)<БР><БР>
Траверс I от 0 до лен/2, а затем <БР>
Временная сложность:o(п)
Место асимптотика :o(Н)
Один естественный способ обратить вспять эту строку, чтобы использовать StringTokenizer и стек. "Стек" - это класс, который реализует простой в использовании последний раз-в обратном порядке (LIFO) стек объектов.
Положить его в frontwards стек
Печать стека назад