Πρόγραμμα Java για να ελέγξετε εάν δύο χορδές είναι αναγράμματα

Σε αυτό το παράδειγμα, θα ελέγξουμε εάν δύο συμβολοσειρές είναι αναγράμματα ή όχι σε Java.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:

  • Συμβολοσειρά Java
  • Πίνακες Java

Δύο χορδές λέγεται ότι είναι αναγράμματα, αν μπορούμε να σχηματίσουμε μια συμβολοσειρά, διευθετώντας τους χαρακτήρες μιας άλλης συμβολοσειράς. Για παράδειγμα, Race and Care . Εδώ, μπορούμε να διαμορφώσουμε το Race, οργανώνοντας τους χαρακτήρες του Care.

Παράδειγμα 1: Πρόγραμμα Java για να ελέγξετε αν δύο χορδές είναι αναγράμματα

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

Παραγωγή

 Η Java και το Vaaj είναι αναγράμματα.

Στην Java, έχουμε δύο χορδές που ονομάζονται str1 και str2. Εδώ, ελέγχουμε εάν τα str1 και str2 είναι αναγράμματα.

Εδώ,

  • str1.toCharArray () - μετατρέπει τη συμβολοσειρά σε πίνακα char
  • Arrays.sort () - ταξινομεί και τους δύο πίνακες char
  • Arrays.equal () - ελέγχει αν ο ταξινομημένος πίνακας char είναι ίσος

Εάν οι ταξινομημένες συστοιχίες είναι ίσες, τότε οι χορδές είναι αναγραμματικές.

Σημείωση : Εδώ, το παράδειγμα είναι διάκριση πεζών-κεφαλαίων. Δηλαδή, η Java και η java δεν είναι αναγράμματα. Είναι επειδή Arrays.sort()συγκρίνει δύο χαρακτήρες με την τιμή ASCII. Και, η τιμή ASCII των J και j είναι διαφορετική.

Παράδειγμα 2: Λάβετε εισόδους συμβολοσειρών από χρήστες και ελέγξτε αν οι συμβολοσειρές είναι αναγράμματα

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

Παραγωγή

 Εισαγάγετε την πρώτη συμβολοσειρά: Race Εισαγάγετε τη δεύτερη συμβολοσειρά: Care Race και Care είναι αναγραμματισμός

Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε την κλάση σαρωτή για να λάβουμε πληροφορίες από τον χρήστη. Εδώ, ελέγξαμε αν οι συμβολοσειρές που παρέχονται από τους χρήστες είναι αναγράμματα.

ενδιαφέροντα άρθρα...