Вам необходимо сначала переварить документ, например:
class WordCounter {
Map<String, Integer> totals = new HashMap<String, Integer>();
int wordCount;
void digest(String document) {
for (String word : document.split("\\w+")) {
wordCount++;
Integer count = totals.get(word);
if (count == null)
totals.put(word, 1);
else
totals.put(word, ++count);
}
}
}
Затем вы можете сделать второй проход по документу, делая то, что вам нравится, с собранной вами информацией, возможно, используя что-то вроде этого метода для каждого слова:
String decorateWithPercent(String word) {
return word + " (" + (totals.get(word) / wordCount) + "%)";
}
Или распечатать частоты, что-то вроде:
void printFrequencies() {
for (Map.Entry<String, Integer> wordCount : totals.entrySet()) {
System.out.println(wordCount.getKey() + " " + wordCount.getValue());
}
}