Invertir cadena en Java con ciclos y StringBuilder

Invertir una cadena o String en Java

En este post voy a explicar dos maneras de invertir o “reversear” una cadena en Java. Es decir, dada una cadena, obtener la cadena al revés o la cadena invertida.

Invertir cadena en Java con ciclos y StringBuilder
Invertir cadena en Java con ciclos y StringBuilder

Estos dos métodos para invertir una cadena en Java funcionan igual pero están programados de distinta manera. El primero utiliza un ciclo for para iterar la cadena, y el segundo método llama a una función de la clase StringBuilder.

Nota: recomiendo leer cómo escanear datos por teclado en Java.

Algoritmo para invertir una cadena en Java

El algoritmo es sencillo, hay que recorrer la cadena original carácter por carácter y en cada iteración concatenar el carácter a otra cadena limpia. Eso sí, la iteración debe ser al revés; es decir, empezar por el final de la cadena.

Pongamos de ejemplo la palabra “hola“. Si la recorremos al revés, comenzamos por la letra a y la concatenamos a la nueva; luego hacemos lo mismo con la l, la o y la h. Finalmente la nueva cadena tendrá la palabra aloh.

Para obtener el carácter en determinada posición se usa charAt, y para concatenar se utiliza el operador +=.

De esta manera podemos invertir una cadena en Java. Ya veremos otro método que no usa ciclos y que llama a una función de StringBuilder.

Invertir cadena en Java con ciclos

Veamos el primer método para invertir una cadena en Java. Aquí el código:

/**
	Invertir una cadena en Java, método 1
	@author parzibyte
*/
class Main {
	public static void main(String[] args) {
		String cadena = "Programando en Java desde parzibyte.me";
		// Esta será la cadena invertida, primero está vacía
		String invertida = "";
		// Recorremos la original del final al inicio
		for (int indice = cadena.length() - 1; indice >= 0; indice--) {
			// Y vamos concatenando cada carácter a la nueva cadena
			invertida += cadena.charAt(indice);
		}
		System.out.println("Cadena original: " + cadena);
		System.out.println("Cadena invertida: " + invertida);

	}
}

Declaramos una cadena (que puede venir de cualquier lugar) y una cadena vacía. Luego recorremos la primera de fin a principio (para obtener su longitud usamos length()) y concatenamos. Finalmente imprimimos la cadena invertida.

Invertir cadena con StringBuilder

Ahora veamos el segundo método que no lleva ninguna codificación de algoritmos, sino una simple llamada a un método de StringBuilder.

/**
	Invertir una cadena en Java, método 2
	@author parzibyte
*/
class Main {
	public static void main(String[] args) {
		String cadena = "Programando en Java desde parzibyte.me";
		// Crear un StringBuilder a partir de la cadena
		StringBuilder stringBuilder = new StringBuilder(cadena);
		// Y llamar al método reverse de StringBuilder (lo convertimos a cadena con toString)
		String invertida = stringBuilder.reverse().toString();
		System.out.println("Cadena original: " + cadena);
		System.out.println("Cadena invertida: " + invertida);

	}
}

Como vemos, la clase StringBuilder (que sirve para muchísimas cosas más) ya tiene un método llamado reverse, el cual solamente tenemos que llamar.

Eso sí, eso no regresa una cadena, por eso tenemos que llamar a toString.

Probar y descargar ejercicios

Puedes descargar el código fuente y probarlo por ti mismo; asegúrate de instalar Java y opcionalmente instala NetBeans.

Eso es todo por el momento. Te invito a ver más sobre Java aquí.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *