Java-ohjelma tarkistaa, ovatko kaksi merkkijonoa anagrammia

Tässä esimerkissä tarkistamme, ovatko kaksi merkkijonoa anagrammia vai eivät.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:

  • Java-merkkijono
  • Java-taulukot

Kahden merkkijonon sanotaan olevan anagrammi, jos voimme muodostaa yhden merkkijonon järjestämällä toisen merkkijonon merkit. Esimerkiksi Race and Care . Täällä voimme muodostaa Racen järjestämällä Care-hahmot.

Esimerkki 1: Java-ohjelma sen tarkistamiseksi, ovatko kaksi merkkijonoa anagrammeja

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

Tuotos

 Java ja Vaaj ovat anagrammeja.

Javassa meillä on kaksi merkkijonoa nimeltä str1 ja str2. Tässä tarkistamme, ovatko str1 ja str2 anagrammeja.

Tässä,

  • str1.toCharArray () - muuntaa merkkijonon char-taulukoksi
  • Arrays.sort () - lajittelee molemmat char-taulukot
  • Arrays.equal () - tarkistaa, ovatko lajitellut char-taulukot yhtä suuret

Jos lajitellut taulukot ovat yhtä suuret, merkkijonot ovat anagrammeja.

Huomaa : Tässä esimerkki erottelee isot ja pienet kirjaimet. Toisin sanoen Java ja java eivät ole anagrameja. Tämä johtuu siitä, että Arrays.sort()verrataan kahta merkkiä ASCII-arvoon. Ja J: n ja j: n ASCII-arvo ovat erilaiset.

Esimerkki 2: Ota merkkijonon syötteet käyttäjiltä ja tarkista, ovatko merkkijonot anagrammia

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

Tuotos

 Anna ensimmäinen merkkijono: Race Anna toinen merkkijono: Care Race ja Care ovat anagrammeja.

Edellä olevassa esimerkissä olemme käyttäneet Scanner-luokkaa ottaaksemme käyttäjältä tietoja. Tässä tarkistimme, ovatko käyttäjien antamat merkkijonot anagrammia.

Mielenkiintoisia artikkeleita...