Como invertir una cadena en Java

Hola a todos, hoy os voy a explicar como invertir una cadena en Java.

En algunas ocasiones puede ser que necesitemos invertir una cadena para nuestros algoritmos.

Lo único que tenemos que hacer es recorrerla de forma inversa y guardarla en otra cadena.

Lo primero es pedir una cadena:


import java.util.Scanner;

public class InvertirCadena {

    public static void main(String[] args) {
        
        
        Scanner sn = new Scanner(System.in);
        sn.useDelimiter("\n");
        
        // Pedimos una cadena y la convertimos a minisculas
        System.out.println("Escribe una cadena");
        String cadena = sn.next().toLowerCase();
        
    }
    
}


Ahora tenemos que recorrer la cadena, empezando desde el final y restando posiciones mientras que sea mayor o igual que 0.

También creamos una variable para almacenar la cadena invertida y una variable de tipo carácter para almacenar cada carácter que vayamos recorriendo.


import java.util.Scanner;

public class InvertirCadena {

    public static void main(String[] args) {
        
        Scanner sn = new Scanner(System.in);
        sn.useDelimiter("\n");
        
        // Pedimos una cadena y la convertimos a minisculas
        System.out.println("Escribe una cadena");
        String cadena = sn.next().toLowerCase();
        
        String cadenaInvertida = "";
        
        // Invertimos la cadena
        char caracter;
        for (int i = cadena.length() - 1; i >= 0; i--) {
           
        }
        
    }
    
}


Después, con la función chartAt obtendremos el carácter de una cadena en concreto y lo concatenamos a la cadena.



import java.util.Scanner;


public class InvertirCadena {

    public static void main(String[] args) {
        
        
        Scanner sn = new Scanner(System.in);
        sn.useDelimiter("\n");
        
        // Pedimos una cadena y la convertimos a minisculas
        System.out.println("Escribe una cadena");
        String cadena = sn.next().toLowerCase();
        
        String cadenaInvertida = "";
        
        // Invertimos la cadena
        char caracter;
        for (int i = cadena.length() - 1; i >= 0; i--) {
            caracter = cadena.charAt(i);
            cadenaInvertida += caracter;
        }
        
        
    }
    
}


Mostramos el resultado:



import java.util.Scanner;

public class InvertirCadena {

    public static void main(String[] args) {
       
        Scanner sn = new Scanner(System.in);
        sn.useDelimiter("\n");
        
        // Pedimos una cadena y la convertimos a minisculas
        System.out.println("Escribe una cadena");
        String cadena = sn.next().toLowerCase();
        
        String cadenaInvertida = "";
        
        // Invertimos la cadena
        char caracter;
        for (int i = cadena.length() - 1; i >= 0; i--) {
            caracter = cadena.charAt(i);
            cadenaInvertida += caracter;
        }
        
        System.out.println("La cadena " + cadena + " invertida es: " + cadenaInvertida);
        
    }
    
}


Este seria el resultado:

Si lo queremos en forma de función, seria así:


import java.util.Scanner;

public class InvertirCadena {

    public static void main(String[] args) {
        
        Scanner sn = new Scanner(System.in);
        sn.useDelimiter("\n");
        
        // Pedimos una cadena
        System.out.println("Escribe una cadena");
        String cadena = sn.next();
        
        String cadenaInvertida = invertirCadena(cadena);
        
        System.out.println("La cadena " + cadena + " invertida es: " + cadenaInvertida);
        
    }
    
    public static String invertirCadena(String cadena){
        
        cadena = cadena.toLowerCase();
        String cadenaInvertida = "";
        
        // Invertimos la cadena
        char caracter;
        for (int i = cadena.length() - 1; i >= 0; i--) {
            caracter = cadena.charAt(i);
            cadenaInvertida += caracter;
        }
        
        return cadenaInvertida;
    }
    
}


El resultado seria el mismo:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.