面向对象与函数式编程
public class Words {
private Set<String> NON_WORDS = new HashSet<>() {{
add("the"); add("and"); add("of"); add("to"); add("a");
add("i"); add("it"); add("in"); add("or"); add("is");
add("d"); add("s"); add("as"); add("so"); add("but");
add("be");
}};
public Map<String, Integer> wordFreq(String words) {
TreeMap<String, Integer> wordMap = new TreeMap<>();
Matcher m = Pattern.compile("\\w+").matcher(words);
while (m.find()) {
String word = m.group().toLowerCase();
if (!NON_WORDS.contains(word)) {
if (wordMap.containsKey(word)) {
wordMap.put(word, wordMap.get(word) + 1);
} else {
wordMap.put(word, 1);
}
}
}
return wordMap;
}
}Last updated