English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

¿Cómo escribir un programa para invertir una cadena sin usar el método reverse() en Java?

Puede revertir String de múltiples maneras sin usar lareverse()función.

Usar recursión -El recurrencia es el proceso de repetir elementos de manera similar a sí mismos. En los lenguajes de programación, si el programa permite que una función se llame a sí misma dentro de la función, se llama a la llamada recursiva de la función. Puede usar una función recursiva para invertir una cadena, como se muestra en el siguiente programa.

Ejemplo

import java.util.Scanner;
public class StringReverse {
   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) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Ingrese un valor de cadena: ");
      String str = sc.next();
      String result = StringReverse.reverseString(str);
      System.out.println(result);
   }
}

Resultado de salida

Ingrese un valor de cadena:
w3codebox
tniopslairotuT

Convertir a bytes/Array de caracteres: Puede usarlos por separadogetBytes()otoCharArray()El método obtiene un array de bytes o caracteres.

Invierte la cadena dada

  • Convertirlo en un array.

  • Invierte los elementos del array.

  • Crear otro String utilizando el array de resultados.

Ejemplo

import java.util.Scanner;
public class StringReverse {
   public static String reverseString(String str){
      //Convertir a un array de caracteres
      char ch[] = str.toCharArray();
      int n = ch.length
      char result[] = new char[n]
      for(int i = 0; i<ch.length; i++) {
         result[n-1]= ch[i]
         n = n - 1;
      }
      return new String(result);
   }
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Ingrese un valor de cadena: ");
      String str = sc.next();
      String result = StringReverse.reverseString(str);
      System.out.println(result);
   }
}

Resultado de salida

Ingrese un valor de cadena:
w3codebox
tniopslairotuT