Programma Java per verificare se due stringhe sono anagrammi

In questo esempio, controlleremo se due stringhe sono anagrammi o meno in Java.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:

  • Java String
  • Array Java

Si dice che due stringhe siano anagramma se possiamo formare una stringa disponendo i caratteri di un'altra stringa. Ad esempio, Race and Care . Qui possiamo formare Race disponendo i personaggi di Care.

Esempio 1: programma Java per verificare se due stringhe sono anagrammi

 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."); ) ) )

Produzione

 Java e Vaaj sono anagram.

In Java, abbiamo due stringhe denominate str1 e str2. Qui, stiamo controllando se str1 e str2 sono anagrammi.

Qui,

  • str1.toCharArray () - converte la stringa in un array di caratteri
  • Arrays.sort () - ordina entrambi gli array di caratteri
  • Arrays.equal () - controlla se l'array di caratteri ordinato è uguale

Se gli array ordinati sono uguali, le stringhe sono anagrammi.

Nota : qui l'esempio fa distinzione tra maiuscole e minuscole. Cioè, Java e Java non sono anagrammi. È perché Arrays.sort()confronta due caratteri con il valore ASCII. Inoltre, il valore ASCII di J e j è diverso.

Esempio 2: prendere input di stringhe dagli utenti e controllare se le stringhe sono anagrammi

 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(); ) )

Produzione

 Inserisci la prima stringa: Race Inserisci la seconda stringa: Care Race e Care sono anagrammi.

Nell'esempio precedente, abbiamo utilizzato la classe Scanner per ricevere input dall'utente. Qui, abbiamo controllato se le stringhe fornite dagli utenti sono anagrammi.

Articoli interessanti...