我有一个任务,给我一个带有文本的文件。该文本是一本书的一部分。我的任务是将该文件传输到我所做的数组列表、哈希图(其中之一)中。该工作的第二部分是从该文件中查找 20 个最常见的单词,并按降序对它们进行排序。
到目前为止,我将文件中的所有这些单词插入到 hashmap 和 arraylist (下面提供了代码),我在单独的方法中完成了这两件事。hashmap 方法仅返回数字,而 arraylist 只返回最常见的单词以及重复次数。
所以代码的第一部分将是哈希图
public void findWords() throws Exception {
// ovde traxim 20 reci koje se najcesce ponavljaju u tekstu
String line;
Integer counter = 0;
FileReader fr = new FileReader("src/Fajl/blab");
BufferedReader br = new BufferedReader(fr);
while ((line = br.readLine()) != null) {
String string[] = line.toLowerCase().split("([,.\\s]+)");
for (String s : string) {
if (hashmap.containsKey(s)) {
counter++;
} else
counter = 1;
hashmap.put(s, counter);
}
}
接下来的部分是按值排序,并显示前 20 个单词的重复次数,从多到少
Collection<Integer> values = mapaKnjiga.values();
ArrayList<Integer> list = new ArrayList<Integer>(values);
Collections.sort(list, Collections.reverseOrder());
for (int i = 0; i < 20; i++)
System.out.println(list.get(i));
}
紫衣仙女
猛跑小猪
慕姐8265434
蝴蝶不菲
喵喵时光机
相关分类