HackerRank - Cracking the Code Interview - Strings: Making Anagrams

Here's my Java solution for HackerRank and Cracking the Code Interview's String: Making Anagrams problem.

import java.io.*;  
import java.util.*;  
import java.text.*;  
import java.math.*;  
import java.util.regex.*;

public class Solution {

    public static int numberNeeded(String first, String second) {
      Map<Character, Integer> fmap = getCharacterMap(first);

      int count = 0;

      for (char c : second.toCharArray()) {
          if (!fmap.containsKey(c)) count++;
          else if (fmap.containsKey(c) && fmap.get(c) == 0) count++;
          else if (fmap.containsKey(c) && fmap.get(c) > 0) {
              Integer current = fmap.get(c);
              current--;
              fmap.put(c, current);
          }
      }

      for (Integer value : fmap.values()) {
          count = count + value;
      }

      return count;
    }

    private static Map<Character, Integer> getCharacterMap(String value) {
      Map<Character, Integer> fmap = new HashMap<Character, Integer>();

      for (char c : value.toCharArray()) {
          if (!fmap.containsKey(c)) fmap.put(c, 1);
          else {
              Integer current = fmap.get(c);
              current++;
              fmap.put(c, current);
          }
      }

       return fmap;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String a = in.next();
        String b = in.next();
        System.out.println(numberNeeded(a, b));
    }
}