w3resource

Java Exercises: Check if two given strings are anagrams or not

Java Basic: Exercise-142 with Solution

Write a Java program to check if two given strings are anagrams or not.

According to wikipedia "An anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once. For example, the word anagram can be rearranged into nag a ram, or the word binary into brainy."

Pictorial Presentation:

Java Basic Exercises: Check if two given strings are anagrams or not.

Sample Solution:

Java Code:

public  class Solution {
    /**
     * @param s: The first string
     * @param b: The second string
     * @return true or false
     */
   public static boolean anagram_test(String str1, String str2) {
        if (str1 == null || str2 == null) {
            return false;
        } else if (str1.length() != str2.length()) {
            return false;
        } else if (str1.length() == 0 && str2.length() == 0) {
            return true;
        }
        int[] count = new int[256];
        for (int i = 0; i < str1.length(); i++) {
            count[str1.charAt(i)]++;
            count[str2.charAt(i)]--;
        }
        for (int num : count) {
            if (num != 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
		String str1 = "wxyz";
		String str2 = "zyxw";
		System.out.println("String-1 : "+str1);
		System.out.println("String-2 : "+str2);
		System.out.println("Check if two given strings are anagrams or not?: "+anagram_test(str1,str2));
	}		
}

Sample Output:

String-1 : wxyz
String-2 : zyxw
Check if two given strings are anagrams or not?: true

Flowchart:

Flowchart: Java exercises: Check if two given strings are anagrams or not.

Java Code Editor:

Company:  Uber Yelp Amazon

Contribute your code and comments through Disqus.

Previous: Write a Java program to check if a given string has all unique characters.
Next: Write a Java program to merge two given sorted lists.

What is the difficulty level of this exercise?



Java: Tips of the Day

Try and catch:

Java is excellent at catching errors, but it can only recover gracefully if you tell it what to do. The cascading hierarchy of attempting to perform an action in Java starts with try, falls back to catch, and ends with finally. Should the try clause fail, then catch is invoked, and in the end, there's always finally to perform some sensible action regardless of the results. Here's an example:

try {
        cmd = parser.parse(opt, args); 
       
        if(cmd.hasOption("help")) {
                HelpFormatter helper = new HelpFormatter();
                helper.printHelp("Hello ", opt);
                System.exit(0);
                }
        else {
                if(cmd.hasOption("shell") || cmd.hasOption("s")) {
                String target = cmd.getOptionValue("tgt");
                } // else
        } // fi
} catch (ParseException err) {
        System.out.println(err);
        System.exit(1);
        } //catch
        finally {
                new Hello().helloWorld(opt);
        } //finally
} //try

It's a robust system that attempts to avoid irrecoverable errors or, at least, to provide you with the option to give useful feedback to the user. Use it often, and your users will thank you!

Ref: https://red.ht/3EZc9OC