zoukankan      html  css  js  c++  java
  • 【BigData】Java基础_读取文件并统计文件中每个单词出现的次数

    需求

    从test.txt文件中读取内容,并且统计每个单词在文件中出现的次数,文件内容如下:

    hello ZhangSan
    hello Lisi
    hello Xiaohua

    实现代码

    实现逻辑:

    ①先使用BufferedReader读取文件中的内容

    ②将读取到的内容存储到数组中,并且根据分隔符将单词分隔

    ③在HashMap中进行统计个数

    package cn.test.logan.day09;
    
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    import java.util.HashMap;
    import java.util.Map.Entry;
    import java.util.Set;
    
    /**
     * 从文件test.txt中读取内容,统计每个单词出现的次数
     * @author QIN
     *
     */
    public class WordCount {
        public static void main(String[] args) throws Exception {
            
            //创建一个HashMap对象
            HashMap<String,Integer> map = new HashMap<>();
            // 新建BufferedReader对象
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d:/test.txt")));
            //定义一个数组,将读取到的元素先放到数组中
            String line = "";
            while((line = br.readLine())!=null){
                String[] wordline = line.split(" ");
                for(String word:wordline){
                    if(map.containsKey(word)){ // 判断是否存在该单词
                        Integer value = map.get(word); //存在则将value+1,不存在则直接新增即可
                        map.put(word, value+1);
                    }else{
                        map.put(word, 1);
                    }    
                }
            }
            // 关闭流
            br.close();
            /**
             * 循环遍历map
             */
            // 取出set集合
            Set<String> keyset = map.keySet();
            // 根据key取出value
            for(String key:keyset){
                int value = map.get(key);
                System.out.println(key+":"+value);
            }
            System.out.println("----------------------------");
            // 使用Entry打印
            Set<Entry<String, Integer>> entrySet = map.entrySet();
            for(Entry<String, Integer> ent:entrySet){
                System.out.println(ent.getKey() + ":" + ent.getValue());
            }
        }
    }
  • 相关阅读:
    java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Date
    权限控制-JS判断是否有权限进行操作跳转页面需要加target
    为你的网站装个“头像”
    本地存储由来的背景
    HTML5的新的结构元素介绍
    Canvas绘图API
    HTML5文件操作API
    认识HTML5
    基于scrapy爬虫的天气数据采集(python)
    Python strip()方法
  • 原文地址:https://www.cnblogs.com/OliverQin/p/12110872.html
Copyright © 2011-2022 走看看