java hashmap word count from a text file

北城以北 提交于 2019-12-14 03:33:02

问题


I am trying to code to read info from a text file, I need to find out how many times each word separated by white space occurs. I then need to output in alphabetical order with the count of each word. I am looking to use a TreeMap, keySet() and an Iterator. My code is very incomplete and I am quite stuck.

    import java.util.HashMap;
    import java.util.Map

    public class WordCount<E extends Comparable<E>> {

        private static Map<String, Integer> map = new HashMap<String, Integer>();

        static {
            fillMap(map, "Alice.txt");
        }

        private static void fillMap(Map<String, Integer> map, String fileName) {


       }

}


回答1:


This is the exact code that you asked for. It will Save every Word and count them. if the word it gets didn't exist, it will add it to the Map, if it did, it will increase its value. At the end, it will print all keys and values. use it, if you got any question, ask.

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

/*
 * @author Mr__Hamid
 */
public class overFlow {

    public static void main(String[] args) throws FileNotFoundException, IOException {

        Map m1 = new HashMap();

        try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
            StringBuilder sb = new StringBuilder();
            String line = br.readLine();

            while (line != null) {
                String[] words = line.split(" ");//those are your words
                for (int i = 0; i < words.length; i++) {
                    if (m1.get(words[i]) == null) {
                        m1.put(words[i], 1);
                    } else {
                        int newValue = Integer.valueOf(String.valueOf(m1.get(words[i])));
                        newValue++;
                        m1.put(words[i], newValue);
                    }
                }
                sb.append(System.lineSeparator());
                line = br.readLine();
            }
        }
        Map<String, String> sorted = new TreeMap<String, String>(m1);
        for (Object key : sorted.keySet()) {
            System.out.println("Word: " + key + "\tCounts: " + m1.get(key));
        }
    }
}


来源:https://stackoverflow.com/questions/31288274/java-hashmap-word-count-from-a-text-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!