import java.util.*;
class WsCube {
public static void main
(String[] args
) { String str
= "JAvaProGramming";
// Array store the frequency of
// each character
int[] count = new int[52];
// Loop through string and
for (char ch : str.toCharArray()) {
// Update count at index (char - 'a')
if((int)ch >= 97 && (int)ch <= 122){
count[ch - 'a']++;
}
if((int)ch >= 65 && (int)ch <= 90){
// Update count at index (char - 'A')
int temp = ch -'A';
count[temp + 25]++;
}
}
// Print characters which occurred
for (int i = 0; i < 52; i++) {
if (count[i] > 0 && i <= 25) {
System.
out.
println((char)(i
+ 'a') + " : " + count[i]);
}
if (count[i] > 0 && i > 25) {
int temp = i - 25;
System.
out.
println((char)(temp
+ 'A') + " : " + count[i]);
}
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKIGNsYXNzIFdzQ3ViZSB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgU3RyaW5nIHN0ciA9ICJKQXZhUHJvR3JhbW1pbmciOwogICAgICAgIAogICAgICAgIC8vIEFycmF5IHN0b3JlIHRoZSBmcmVxdWVuY3kgb2YgCiAgICAgICAgLy8gZWFjaCBjaGFyYWN0ZXIKICAgICAgICBpbnRbXSBjb3VudCA9IG5ldyBpbnRbNTJdOwoKICAgICAgICAvLyBMb29wIHRocm91Z2ggc3RyaW5nIGFuZCAKICAgICAgICBmb3IgKGNoYXIgY2ggOiBzdHIudG9DaGFyQXJyYXkoKSkgewogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVXBkYXRlIGNvdW50IGF0IGluZGV4IChjaGFyIC0gJ2EnKQogICAgICAgICAgICBpZigoaW50KWNoID49IDk3ICYmIChpbnQpY2ggPD0gMTIyKXsKICAgICAgICAgICAgICAgIGNvdW50W2NoIC0gJ2EnXSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZigoaW50KWNoID49IDY1ICYmIChpbnQpY2ggPD0gOTApewogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY291bnQgYXQgaW5kZXggKGNoYXIgLSAnQScpCiAgICAgICAgICAgICAgICBpbnQgdGVtcCA9IGNoIC0nQSc7CiAgICAgICAgICAgICAgICBjb3VudFt0ZW1wICsgMjVdKys7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIFByaW50IGNoYXJhY3RlcnMgd2hpY2ggb2NjdXJyZWQKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDUyOyBpKyspIHsKICAgICAgICAgICAgaWYgKGNvdW50W2ldID4gMCAmJiBpIDw9IDI1KSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKGNoYXIpKGkgKyAnYScpICsgIiA6ICIgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNvdW50W2ldKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY291bnRbaV0gPiAwICYmIGkgPiAyNSkgewogICAgICAgICAgICAgICAgaW50IHRlbXAgPSBpIC0gMjU7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKGNoYXIpKHRlbXAgKyAnQScpICsgIiA6ICIgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNvdW50W2ldKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICB9CiAgICB9Cn0=