java

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

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.