Быстрый псевдокод. По сути, уловка заключается в том, что вы сохраняете символы в качестве ключей на карте, а значение - это число вхождений для этого символа (пара ключ / значение).
//declare a map to hold your characters and their counters
Map<String,Integer> charCounter = new HashMap<String,Integer>();
//the following if else logic goes when you are looping through your tokens
if(charCounter.containsKey(<your character>)){
charCounter.put(<your character>,charCounter.get(<your character>)+1);
}else{
charCounter.put(<your character>,1);
}
После того, как вы закончите обход, вы можете напечатать карту таким образом.
for(String key : charCounter.keySet()) {
System.out.println(key+" "+charCounter.get(key));
}