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.