how to check how many anagrams a word has in java

Java
// An efficient Java program to count anagrams of a 
// pattern in a text. 
import java.io.*; 
import java.util.*; 
  
public class GFG { 
    final static int MAX_CHAR = 256
  
    // Function to find if two strings are equal 
    static boolean isCountZero(int[] count) 
    { 
        for (int i = 0; i < MAX_CHAR; i++) 
            if (count[i] != 0) 
                return false; 
        return true; 
    } 
  
    static int countAnagrams(String text, String word) 
    { 
        int N = text.length(); 
        int n = word.length(); 
  
        // Check for first window. The idea is to 
        // use single count array to match counts 
        int[] count = new int[MAX_CHAR]; 
        for (int i = 0; i < n; i++) 
            count[word.charAt(i)]++; 
        for (int i = 0; i < n; i++) 
            count[text.charAt(i)]--; 
  
        // If first window itself is anagram 
        int res = 0; 
        if (isCountZero(count)) 
            res++; 
  
        for (int i = n; i < N; i++) { 
  
            // Add last character of current 
            // window 
            count[text.charAt(i)]--; 
  
            // Remove first character of previous 
            // window. 
            count[text.charAt(i - n)]++; 
  
            // If count array is 0, we found an 
            // anagram. 
            if (isCountZero(count)) 
                res++; 
        } 
        return res; 
    } 
  
    // Driver code 
    public static void main(String args[]) 
    { 
        String text = ""; 
        String word = "for"; 
        System.out.print(countAnagrams(text, word)); 
    } 
} 

Source

Also in Java: