Programa Java para comprobar si dos cadenas son anagramas

En este ejemplo, comprobaremos si dos cadenas son anagramas o no en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Cadena Java
  • Matrices de Java

Se dice que dos cadenas son anagramas si podemos formar una cadena organizando los caracteres de otra cadena. Por ejemplo, Race and Care . Aquí, podemos formar Race organizando los personajes de Care.

Ejemplo 1: programa Java para comprobar si dos cadenas son anagramas

 import java.util.Arrays; class Main ( public static void main(String() args) ( String str1 = "java"; String str2 = "vaaj"; // check if length is same if(str1.length() == str2.length()) ( // convert strings to char array char() charArray1 = str1.toCharArray(); char() charArray2 = str2.toCharArray(); // sort the char array Arrays.sort(charArray1); Arrays.sort(charArray2); // if sorted char arrays are same // then the string is anagram boolean result = Arrays.equals(charArray1, charArray2); if(result) ( System.out.println(str1 + " and " + str2 + " are anagram."); ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) )

Salida

 Java y Vaaj son anagramas.

En Java, tenemos dos cadenas llamadas str1 y str2. Aquí, estamos verificando si str1 y str2 son anagramas.

Aquí,

  • str1.toCharArray () - convierte la cadena en una matriz de caracteres
  • Arrays.sort () : ordena ambas matrices de caracteres
  • Arrays.equal () : comprueba si la matriz de caracteres ordenada es igual

Si las matrices ordenadas son iguales, entonces las cadenas son anagramas.

Nota : Aquí, el ejemplo distingue entre mayúsculas y minúsculas. Es decir, Java y Java no son anagramas. Es porque Arrays.sort()compara dos caracteres con el valor ASCII. Y el valor ASCII de J y j son diferentes.

Ejemplo 2: tome las entradas de cadena de los usuarios y verifique si las cadenas son anagramas

 import java.util.Arrays; import java.util.Scanner; class Main ( public static void main(String() args) ( // create an object of Scanner class Scanner input = new Scanner(System.in); // take input from users System.out.print("Enter first String: "); String str1 = input.nextLine(); System.out.print("Enter second String: "); String str2 = input.nextLine(); // check if length is same if(str1.length() == str2.length()) ( // convert strings to char array char() charArray1 = str1.toCharArray(); char() charArray2 = str2.toCharArray(); // sort the char array Arrays.sort(charArray1); Arrays.sort(charArray2); // if sorted char arrays are same // then the string is anagram boolean result = Arrays.equals(charArray1, charArray2); if(result) ( System.out.println(str1 + " and " + str2 + " are anagram."); ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) input.close(); ) )

Salida

 Ingrese la primera cadena: Race Ingrese la segunda cadena: Care Race y Care son anagramas.

En el ejemplo anterior, hemos utilizado la clase Scanner para recibir información del usuario. Aquí, verificamos si las cadenas proporcionadas por los usuarios son anagramas.

Articulos interesantes...