What is Anagram?
Two strings are said to be anagrams if they make a meaningful word by rearranging or shuffling the letters of the string. In other words, we can say that two strings are anagrams if they contain the same characters but in different order.
Anagram means re-arranging the letter. For example:
RESTFUL => FLUSTER
FORTY FIVE => OVER FIFTY
RACE => CARE
CHEATER => TEACHER
EVIL => VILE
ELEVEN PLUS TWO => TWELVE PLUS ONE
Algorithm:
STEP 1: Initialize two strings: str 1 and str 2
STEP 2: Find the length of the string
STEP 3: Compare the length of the string
a. if the length is not equal then the string is not an anagram.
b. if the length is equal:
a. convert the sting into character
b. sort both the arrays using sort()
c. compare the string using equal()
c. Pass the variable in the if statement.
if the statement is true, then the string is an anagram otherwise not an anagram
Code:
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();
}
}
Output:
Sofia Sondh
The Tech Platform
コメント