Ну и дела ... все эти строки кода.Как насчет этих нескольких строк?
public static Map<String, Integer> countWords(String input) {
Map<String, Integer> map = new HashMap<String, Integer>();
Matcher matcher = Pattern.compile("\\b\\w+\\b").matcher(input);
while (matcher.find())
map.put(matcher.group(), map.containsKey(matcher.group()) ? map.get(matcher.group()) + 1 : 1);
return map;
}
Вот код в действии:
public static void main(String[] args) {
System.out.println(countWords("sample, repeat sample, of text"));
}
Вывод:
{of=1, text=1, repeat=1, sample=2}