import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class FrekvencnaAnalyza {
private Map<Character, Integer> pocetnostVyskytuZnakov = new HashMap<>();
public void pocitacRiso(File subor) {
Scanner citacSuboru = null;
try {
citacSuboru = new Scanner(subor);
while (citacSuboru.hasNext()) {
String slovicko = citacSuboru.next();
pocitacNaSlove(slovicko);
}
} catch (Exception e) {
System.out.println("nieco je plano");
} finally {
if (citacSuboru != null)
citacSuboru.close();
}
List<Entry<Character, Integer>> riadkyMapy = new ArrayList<>(
pocetnostVyskytuZnakov.entrySet());
Porovnavac p = new Porovnavac();
Collections.sort(riadkyMapy, p);
for (Entry<Character, Integer> entry : riadkyMapy) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
public void pocitacNaSlove(String slovo) {
char znak;
for (int i = 0; i < slovo.length(); i++) {
znak = slovo.charAt(i);
if (pocetnostVyskytuZnakov.containsKey(znak)) {
pocetnostVyskytuZnakov.put(znak,
pocetnostVyskytuZnakov.get(znak) + 1);
// pocetnostVyskytuZnakov.get(znak)-tato cast iba zisti aktualnu
// hodnotu
} else {
pocetnostVyskytuZnakov.put(znak, 1);
}
}
}
public String toString() {
String s = "";
for (Character kluc : pocetnostVyskytuZnakov.keySet()) {
s = s + kluc + " " + pocetnostVyskytuZnakov.get(kluc) + "\n";
}
return s;
}
}