Hoy vamos a ver cómo saber si una cadena o string de Java es un anagrama. Recordemos que un anagrama es un texto que tiene las mismas letras que otro, pero en diferente orden.

Veamos entonces cómo resolver este ejercicio de Anagramas y Strings en Java.

Algoritmo general

Para saber si una cadena es anagrama de otra primero debemos convertir las letras de ambas a minúsculas o mayúsculas, es decir, que ambas estén en la misma notación.

Después se deben eliminar los signos de puntuación, espacios y esas cosas, pues no cuentan.

Finalmente las cadenas se ordenan de manera alfabética, y si al compararlas son las mismas, se dice que son anagramas.

Código de la función que indica si es anagrama en Java

Veamos el código fuente.

Definimos dos funciones: una que indica si dos cadenas son anagramas, y otra que ordena una cadena. Esta última sirve para ordenar las cadenas.

Ejemplo de algoritmo en marcha

Pongamos las palabras Enfriamento y Refinamiento.

  • Paso 1: convertir a minúsculas ambas (y remover signos o espacios), ahora son enfriamiento y refinamiento
  • Paso 2: ordenarlas alfabéticamente, ahora son: aeefiimnnort y aeefiimnnort
  • Paso 3: comprobar si son iguales, lo cual es verdadero. Por lo tanto se dice que son anagramas.

En caso de que no fueran iguales, al ordenar faltarían o sobrarían letras, por lo tanto no sería un anagrama.

Si quieres puedes probar el ejercicio en línea, o descargarlo y ejecutarlo por tu cuenta; eso sí, no olvides instalar el compilador y un buen IDE.

Te invito a leer más sobre Java en mi blog.

¿Encontraste lo que buscabas?

Si es así, suscríbete para que estés enterado de mis nuevos posts sobre programación e informática

Estoy interesado en trabajar contigo de manera remota para llevar tu idea a la realidad, formar parte de tu equipo de desarrolladores, ayudarte con tu tarea, dar asesorías y todo lo relacionado con tecnología y programación. Contáctame para más información
No te vayas sin seguirme en Twitter, Facebook y GitHub
Si tienes dudas déjalas en un comentario, pero asegúrate de seguirme antes como agradecimiento (no te cuesta nada y me ayudas mucho)


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB. Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron. Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scripts La plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C. Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Share via
A %d blogueros les gusta esto: