Program Java pentru a verifica dacă două șiruri sunt anagramă

În acest exemplu, vom verifica dacă două șiruri sunt sau nu anagramă în Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Șir Java
  • Matrice Java

Se spune că două șiruri sunt anagramă dacă putem forma un șir aranjând caracterele altui șir. De exemplu, Race and Care . Aici putem forma Race aranjând personajele lui Care.

Exemplul 1: program Java pentru a verifica dacă două șiruri sunt anagrame

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

Ieșire

 Java și Vaaj sunt anagramă.

În Java, avem două șiruri numite str1 și str2. Aici verificăm dacă str1 și str2 sunt anagrame.

Aici,

  • str1.toCharArray () - convertește șirul într-o matrice char
  • Arrays.sort () - sortează ambele matrice de caractere
  • Arrays.equal () - verifică dacă matricea de caractere sortate este egală

Dacă matricile sortate sunt egale, atunci șirurile sunt anagramă.

Notă : Aici, exemplul este sensibil la majuscule și minuscule. Adică, Java și java nu sunt anagrame. Acest lucru se datorează faptului că Arrays.sort()compară două caractere cu valoarea ASCII. Și valoarea ASCII a lui J și j sunt diferite.

Exemplul 2: luați intrări de șiruri de la utilizatori și verificați dacă șirurile sunt anagramă

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

Ieșire

 Introduceți primul șir: cursă Introduceți al doilea șir: Care Race și Care sunt anagramă.

În exemplul de mai sus, am folosit clasa Scanner pentru a primi informații de la utilizator. Aici, am verificat dacă șirurile furnizate de utilizatori sunt anagramă.

Articole interesante...