Моя цель - создать распределение частот каждого символа в больших плоских файлах (1 ГБ +) для последующего импорта базы данных. В идеале на выходе должен быть список символов ASCII, каждый из которых следует за счетом.
В настоящее время я использую хэш-карту для создания распределения каждого значения в строке, и это отчасти работает, я просто не знаю, как реализовать это в большом файле. Кроме того, в моем выводе символы CR и LF (или / r / n) приводят к новой строке со счетом на следующей.
Вот текущий код:
public class CharCount{
public static void main(String[] args) {
String s = "abcdefghijklmnopqrstuvwxyz1234567890,.)(/\\<>?!@#$%^&*_-+=\r\n";
char[] arr = s.toCharArray();
HashMap <Character,Integer> count = new HashMap<Character, Integer>();
for (char c : arr) {
try {
count.put(c, count.get(c)+1);
} catch (NullPointerException e) {
count.put(c, 1);
}
}
for (Character c: count.keySet()) {
System.out.println(c + " = " + (int)c + " = " + count.get(c));
}
}
}
Идеальный результат будет выглядеть примерно так:
000 NUL 4124435
001 SOH 0
002 STX 0
003 ETX 0
.....
253 х 0
254 þ 0
255 ÿ 0
Определенно ценю любую помощь!