Как развернуть строку в java
Перейти к содержимому

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

  • автор:

Как перевернуть строку в Java: методы реверса и их примеры

Java String Reverse — это задача, заключающаяся в обращении порядка символов в строке. Этот процесс может быть выполнен через различные методы и подходы, но наиболее распространенный способ — это использование метода StringBuilder.

Ниже приведен пример кода, демонстрирующий, как обратить строку в Java, используя метод StringBuilder:

 String str = "hello world"; StringBuilder sb = new StringBuilder(str); String reversedStr = sb.reverse().toString(); System.out.println(reversedStr); // выведет "dlrow olleh" 

Первым шагом является создание новой строки с помощью ключевого слова `String`. Затем мы создаем новый объект `StringBuilder` с помощью этой строки, который содержит метод `reverse()` для обращения порядка символов. Мы применяем его к объекту StringBuilder и преобразуем результат в строку, используя метод `toString()`. В конце мы выводим обратную строку на экран с помощью `System.out.println()`.

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

Вот пример кода для решения этой задачи с помощью второго подхода:

 String str = "hello world"; String reversedStr = ""; for (int i = str.length() - 1; i >= 0; i--) < reversedStr += str.charAt(i); >System.out.println(reversedStr); // выведет "dlrow olleh" 

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

Оба эти подхода могут быть использованы для обращения порядка символов в строке в Java в зависимости от требований и предпочтений программиста.

Реверс строки в Java

Строка – это последовательность символов, которая считается объектом в Java. Существуют различные операции, которые вы можете выполнять над объектом String. Одной из наиболее часто используемых операций над строковым объектом является реверс.

1. Использование метода CharAt

В приведенной ниже программе вы сможете понять, как перевернуть строку в Java, введенную пользователем. Здесь использован метод CharAt() для извлечения символов из входной строки. Основная задача метода – вернуть символ по указанному индексу в указанной строке. Затем добавили их в обратном порядке, чтобы изменить заданную строку. Это один из простых вариантов.

package Edureka; import java.util.*; public class StringReverse< public static void main(String args[]) < String initial, rev=""; Scanner in=new Scanner(System.in); System.out.println("Enter the string to reverse"); initial=in.nextLine(); int length=initial.length(); for(int i=length-1;i>=0;i--) rev=rev+initial.charAt(i); System.out.println("Reversed string: "+rev); > >

Когда вы выполняете эту программу, вывод выглядит так, как показано ниже:

Enter the string to reverse HELLO EDUREKA Reversed string: AKERUDE OLLEH

2. Использование классов String Builder/String Buffer

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

package Edureka; import java.util.*; public class StringRev < // Function to reverse a string in Java using StringBuilder public static String rev(String s)< return new StringBuilder(s).reverse().toString(); >public static void main(String[] args) < String s= "Welcome to Edureka"; // Note that string is immutable in Java s= rev(s); System.out.println("Result after reversing a string is : "+s); >>

При выполнении приведенного выше кода результат будет таким, как показано ниже:

Result after reversing a string is : akerudE ot emocleW

Кроме того, вы также можете использовать метод reverse() класса StringBuffer, как и StringBuilder. Давайте посмотрим на код ниже.

package Edureka; import java.util.*; public class StringRev < // Function to reverse a string in Java using StringBuffer public static String rev(String s)< return new StringBufferr(s).reverse().toString(); >public static void main(String[] args) < String s= "Welcome to Edureka"; // Note that string is immutable in Java s= rev(s); System.out.println("Result after reversing a string is : "+s); >>

При запуске программы выходные данные будут такими же, как и у класса StringBuilder.

Примечание: можете обратить как String, используя StringBuffer reverse(), как показано в приведенной выше программе, либо просто использовать логику кода, как показано ниже:

StringBuffer sb =new StringBuffer("JavaEdureka"); System.out.println(sb.reverse()); Output: akerudEavaJ

И StringBuilder, и StringBuffer имеют одинаковый подход к реверсу строки в Java. Но StringBuilder предпочтительнее, поскольку он не синхронизирован и работает быстрее, чем StringBuffer.

3. Использование обратной итерации

Сначала преобразовываем данную строку в символьный массив, используя метод CharArray(). После этого просто перебираем данный массив в обратном порядке.

package Edureka; import java.util.*; public class StringRev< // Function to reverse a string in Java public static String reverseString(String s)< //Converting the string into a character array char c[]=s.toCharArray(); String reverse=""; //For loop to reverse a string for(int i=c.length-1;i>=0;i--) < reverse+=c[i]; >return reverse; > public static void main(String[] args) < System.out.println(reverseString("Hi All")); System.out.println(reverseString("Welcome to Edureka Blog")); >>
llA iH golB akerudE ot emocleW

4. Использование рекурсии

Рекурсия – это не что иное, как функция, которая вызывает сама себя.

package Edureka; import java.util.*; public class StringRecursion < String rev(String str) < if(str.length() == 0) return " "; return str.charAt(str.length()-1) + rev(str.substring(0,str.length()-1)); >public static void main(String[ ] args) < StringRecursion r=new StringRecursion(); Scanner sc=new Scanner(System.in); System.out.print("Enter the string : "); String s=sc.nextLine(); System.out.println("Reversed String: "+r.rev(s)); >>
Enter the string : Java is the blooming technology since its existence Reversed String: ecnetsixe sti ecnis ygolonhcet gnimoolb eht si avaJ

В приведенном выше коде создан объект для класса StringRecursion r. Затем прочитана введенная строка с помощью sc.nextLine() и сохранена в строковую переменную s. Наконец, вызван обратный метод, как r.rev (s).

5. Меняем местами буквы в строке

Эта программа реверсирует буквы, присутствующие в строке, введенной пользователем. Не переворачивает всю строку, как было показано ранее в предыдущих примерах. Например: Hello People будет называться olleH elpoeP.

package Edureka; public class stringreverse < public static void main(String[] args) < // TODO Auto-generated method stub String str = "Welcome To Edureka"; String[] strArray = str.split(" "); for (String temp: strArray)< System.out.println(temp); >for(int i=0; i=0; j--) System.out.print(" "); > > >

Вывод вышеуказанной программы будет таким, как показано ниже:

Welcome To Edureka emocleW oT akerudE

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

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

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

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

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

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

1 рим ,тевирП

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

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

 org.apache.commons commons-lang3 3.9 

Теперь, для того, чтобы вывести строку в обратном порядке, воспользуемся методом 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. В данной статье мы показали наиболее удобные из них.

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

  • ← Что такое NullPointerException и как это исправить
  • Lombok – установка и настройка →

Как развернуть строку в Java?

Изучите различные способы разворота строки в Java с использованием StringBuilder, рекурсии и метода toCharArray. Выберите подходящий метод в зависимости от ваших требований.

Cодержание

  • 1. Использование StringBuilder или StringBuffer
  • 2. Использование рекурсии
  • 3. Использование метода toCharArray
  • Заключение

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

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

1. Использование StringBuilder или StringBuffer

StringBuilder и StringBuffer — это классы, предназначенные для работы с изменяемыми строками в Java. Они обеспечивают эффективные операции над строками, включая развертывание.

Для развертывания строки с помощью StringBuilder или StringBuffer, можно воспользоваться методом reverse() . Этот метод переворачивает порядок символов в текущей строке.

Вот пример кода, демонстрирующий использование StringBuilder для развертывания строки:

 String str = "Привет, мир!"; StringBuilder sb = new StringBuilder(str); sb.reverse(); String reversedStr = sb.toString(); System.out.println(reversedStr); 

В результате выполнения этого кода будет выведена развернутая строка: «!рим ,тевирП».

5 СПОСОБОВ перевернуть строку в Java - YouTube

2. Использование рекурсии

Другим способом развернуть строку в Java является использование рекурсии. Рекурсивная функция может развернуть строку, вызывая саму себя с уменьшенной входной строкой.

Вот пример рекурсивной функции для развертывания строки:

 public static String reverseString(String str) < if (str.isEmpty()) < return str; >else < return reverseString(str.substring(1)) + str.charAt(0); >> public static void main(String[] args)

При выполнении данного кода будет выведена развернутая строка: «!рим ,тевирП».

Добавить комментарий

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