Problem:
Counting Characters

Write a program which counts and reports the number of each alphabetical letter. Ignore the case of characters.

Input

A sentence in English is given in several lines.

Output

Prints the number of alphabetical letters in the following format:

a : The number of 'a'
b : The number of 'b'
c : The number of 'c'
.
.
z : The number of 'z'

Constraints

The number of characters in the sentence < 1200

Sample Input

This is a pen.

Sample Output

a : 1
b : 0
c : 0
d : 0
e : 1
f : 0
g : 0
h : 1
i : 2
j : 0
k : 0
l : 0
m : 0
n : 1
o : 0
p : 1
q : 0
r : 0
s : 2
t : 1
u : 0
v : 0
w : 0
x : 0
y : 0
z : 0

Solution in JAVA (judge verdict: Wrong Answer)

import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Scanner;

public class Main{

	static Scanner s=new Scanner(System.in);

	public static void main(String __[]){
		while(s.hasNext()){
			input();
			solve();
		}
	}

	static String in;

	private static void input(){
		in=s.nextLine().toLowerCase().replaceAll("[^a-z]","");
	}

	private static void solve(){
		Counter<Character> counter=new Counter<>(30);
		for(char c='a'; c<='z'; c++)
			counter.add(c,0);
		for(char c:in.toCharArray())
			counter.add(c);
		for(Entry<Character, Integer> e:counter.map.entrySet())
			System.out.printf("%c : %d\n",e.getKey(),e.getValue());
	}
}

class Counter<T>{

	public HashMap<T, Integer> map;

	public Counter(int initSize){
		map=new HashMap<>(initSize);
	}

	public Counter(){
		this(10);
	}

	public void add(T key, int v){
		Integer i;
		if((i=map.get(key))==null){
			map.put(key,v);
		}else{
			map.put(key,i+v);
		}
	}

	public void add(T key){
		add(key,1);
	}
}