В этой статье мы рассмотрим несколько способов, как перевернуть (инвертировать) строку.

Инвертируем строку с помощью StringBuilder

Самый простой способ, который не требует никаких дополнительных библиотек – это использовать стандартный StringBuilder:

StringBuilder sb = new StringBuilder("Привет, мир 1");
System.out.println(sb.reverse());

Результат инвертирования строки:

1 рим ,тевирП

Переворачиваем строку с помощью библиотеки StringUtils

Если в вашем проекте уже подключена библиотека StringUtils, будет удобно воспользоваться именно ею. Если вы не подключили библиотеку, это можно сделать с помощью подключения зависимости в файле pom.xml:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.9</version>
</dependency>

Теперь, для того, чтобы вывести строку в обратном порядке, воспользуемся методом StringUtils.reverse:

 String s = "Привет, мир 2";
 System.out.println(StringUtils.reverse(s));

Результат:

2 рим ,тевирП

Кстати, в этом же классе есть метод StringUtils.reverseDelimited, который инвертирует строку не посимвольно, а по слова. Ему требуется указать на вход строку и разделитель между словами:

String s = "Привет, мир 2";
System.out.println(StringUtils.reverseDelimited(s, ' '));

Результат:

2 мир Привет,

Инвертируем строку с помощью массива char[]

Приведённые выша два способа инвертирования строки являются наиболее простыми, читаемыми и удобными. Но на всякий случай приведём ещё один способ с помощью массива char:

String s = "Привет, мир 3";

char[] result = s.toCharArray();

int startIndex = 0;
int endIndex = result.length - 1;
char temp;

for (; endIndex > startIndex; startIndex++, endIndex--) {
    temp = result[startIndex];
    result[startIndex] = result[endIndex];
    result[endIndex] = temp;
}

System.out.println(result);

Здесь мы сначала преобразуем входную строку в массив символов, затем последовательно меняем символы местами, используя промежуточную переменную temp. Результат выполнения такой программы:

3 рим ,тевирП

Этот способ является более громоздким и менее удобным, поэтому рекомендуем вам использовать именно первые два способа. Тем не менее, этот вопрос может встречаться на собеседовании на позицию Junior Java Developer

Заключение

Существует множество способов инвертировать строку в Java. В данной статье мы показали наиболее удобные из них.

Как перевернуть строку