English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
en este ejemplo, verificaremos si dos cadenas en Java son anagramas (anagramas de letras), que es una nueva palabra formada cambiando el orden de las letras de una palabra o frase.
si podemos formar una cadena mediante el reordenamiento de los caracteres de otra cadena, decimos que las dos cadenas son acertijos. Por ejemplo,Race con Care.Aquí, podemos rearranjar las letras Care para formar la palabra Race.
import java.util.Arrays; class Main { public static void main(String[] args) { String str1 = "Java"; String str2 = "Vaaj"; //verificar si la longitud es la misma if(str1.length() == str2.length()) { //convertir la cadena en un arreglo de caracteres char[] charArray1 = str1.toCharArray(); char[] charArray2 = str2.toCharArray(); //Arrays.sort() Arrays.sort(charArray1); Arrays.sort(charArray2); //ordenar el arreglo de caracteres //si los arreglos de caracteres ordenados son iguales boolean result = Arrays.equals(charArray1, charArray2); if(result) { System.out.println(str1 + " y " + str2 + "es un anagrama de letras."); } else { System.out.println(str1 + " y " + str2 + "No es un anagrama de letras."); } } } }
Resultados de salida
entonces la cadena es un anagrama
Java y Vaaj son anagramas de letras1y str2en Java, tenemos dos nombres de str1y str2si las cadenas de letras tienen el mismo número de letras pero en una secuencia diferente.
aquí,
str1.toCharArray() - Convertir la cadena a un array de caracteres
Arrays.sort() - ordenar dos arreglos de caracteres
Arrays.equal() - verificar si los arreglos de caracteres ordenados son iguales
si los arreglos ordenados son iguales, las cadenas son anagramas (anagramas de letras).
import java.util.Arrays; import java.util.Scanner; class Main { public static void main(String[] args) { //crear un objeto de la clase Scanner Scanner input = new Scanner(System.in); //aceptar la entrada del usuario System.out.print("Ingrese la primera cadena: "); String str1 = input.nextLine(); System.out.print("Ingrese la segunda cadena: "); String str2 = input.nextLine(); //verificar si la longitud es la misma if(str1.length() == str2.length()) { //Convertir la cadena a un array de caracteres char[] charArray1 = str1.toCharArray(); char[] charArray2 = str2.toCharArray(); //Ordenar el array de caracteres Arrays.sort(charArray1); Arrays.sort(charArray2); //Si los arrays de caracteres ordenados son iguales //Entonces la cadena es un anagrama de letras boolean result = Arrays.equals(charArray1, charArray2); if(result) { System.out.println(str1 + " y " + str2 + "es un anagrama de letras."); } else { System.out.println(str1 + " y " + str2 + "No es un anagrama de letras."); } } input.close(); } }
Resultados de salida
Ingrese la primera cadena: Race Ingrese la segunda cadena: Care Race y Care son anagramas de letras
En el ejemplo anterior, usamosScannerLa clase obtiene la entrada del usuario. Aquí, verificamos si la cadena proporcionada por el usuario es un anagrama de letras.