import java.util.*; import java.io.*; class SiftData{ public static void main(String args[]) { try { Scanner inData = new Scanner(new File(args[0])); Map saveData = new HashMap(); Map countData = new HashMap(); String key = "", text = ""; while (inData.hasNext()) { String inLine = inData.nextLine(); if (inLine.indexOf("*********") >= 0) { if (saveData.containsKey(key)) { String counter = (String) countData.get(key); countData.put(key, counter + "1"); } else { saveData.put(key, text); countData.put(key, "1"); } key = ""; text = ""; } else if (inLine.indexOf("rank") < 0) { if (inLine.indexOf("##") >= 0) text += (inLine + "\n"); else if (inLine.indexOf(":") >= 0) key += (inLine.substring(inLine.indexOf(":") + 1) + "\n"); } } Iterator it = saveData.keySet().iterator(); while (it.hasNext()) { key = (String) it.next(); text = (String) saveData.get(key); String counter = (String) countData.get(key); System.out.println(key + " .... count:" + counter.length()); System.out.println(text); System.out.println("********************************************"); } } catch (Exception e) {} } }