"分拣" 思路 统计每个单词出现的次数

package collection.map;

public class Letter {
	public String name;
	public int count;

}

  

package collection.map;
/*
 * 统计每个单词出现的次数
 * "分拣" 思路
 * 1、为所有key创建容器
 *    之后容器中存放对应value
 * 2、第一次创建容器,并存放值value
 *    第二次之后,直接使用容器存放值
 */
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapDemo01 {

    private static void test1(String str)
    {
        String[] strArr = str.split(" ");        //分割字符串
        Map<String,Letter> letterMap = new HashMap<String, Letter>();
        for(String key : strArr)
        {
            Letter col = null;
            if(null == (col = letterMap.get(key)))
            {
                col = new Letter();
                col.count = 1;
                letterMap.put(key, col);
            }
            else
            {
                col.count++;
            }
        }

        Set<String> keys = letterMap.keySet();
        for(String key:keys)
        {
            Letter col = letterMap.get(key);
            System.out.println("单词:"+key+", 次数: "+col.count);
        }
    }

    private static void test2(String str)
    {
        String[] strArr = str.split(" ");
        Map<String,Integer> letterMap = new HashMap<String,Integer>();
        for(String temp : strArr)
        {
            int count = 0;
            if(letterMap.containsKey(temp))
            {
                count = letterMap.get(temp);
            }
            letterMap.put(temp, ++count);
        }

        //输出Map的值
        Set<String> keys = letterMap.keySet();
        for(String key:keys)
        {
            System.out.println("单词:"+key+",次数:"+letterMap.get(key));
        }
    }

    public static void main(String[] args) {
        String str = "you know new york , you need new york . you know you need unique new york .";

        test1(str);
        System.out.println("-----------");
        test2(str);

    }

}
时间: 2024-10-12 14:20:30

"分拣" 思路 统计每个单词出现的次数的相关文章

统计文章内各个单词出现的次数

算法的思路是: 从头到尾遍历文件,从文件中读取遍历到的每一个单词. 把遍历到的单词放到hash_map中,并统计这个单词出现的次数. 遍历hash_map,将遍历到的单词的出现次数放到优先级队列中. 当优先级队列的元素个数超过k个时就把元素级别最低的那个元素从队列中取出,这样始终保持队列的元素是k个. 遍历完hash_map,则队列中就剩下了出现次数最多的那k个元素. 具体实现和结果如下: // 出现次数最多的K个单词.cpp : Defines the entry point for the

shell统计文本中单词的出现次数

Ubuntu14.04 给定一个文本,统计其中单词出现的次数 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.txt #! /bin/bash# solution 1 if [ $# -eq 0 ] then echo "Usage:$0 args error" exit 0 fi if [ $# -ge 2 ] then echo "analyse the first file $1"

N个任务掌握java系列之统计一篇文章中单词出现的次数

问题:统计一篇文章中单词出现的次数 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中. (2)定义一个Map,key是字符串类型,保存单词:value是数字类型,保存该单词出现的次数. (3)遍历(1)中得到的字符串数组,对于每一个单词,考察Map的key中是否出现过该单词,如果没出现过,map中增加一个元素,key为该单词,value为1(第一次出现): 如果,在map的key中发现了该单词,则通过key找到对应的value(单词出现的次数)

统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数

统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数 from collections import Counter import re with open('a.txt', 'r', encoding='utf-8') as f: txt = f.read() c = Counter(re.split('\W+',txt)) #取出每个单词出现的个数 print(c) ret = c.most_common(10) #取出频率最高的前10个 print(ret) 原

在hadoop上进行编写mapreduce程序,统计关键词在text出现次数

mapreduce的处理过程分为2个阶段,map阶段,和reduce阶段.在要求统计指定文件中的所有单词的出现次数时, map阶段把每个关键词写到一行上以逗号进行分隔,并初始化数量为1(相同的单词hadoop中的map会自动放到一行中) reduce阶段是把每个单词出现的频率统计出来重新写回去. 如代码: package com.clq.hadoop2; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Lo

统计C语言关键字出现次数

统计C语言关键字出现次数 <C程序设计语言>K&R版本第6章结构6.3结构数组内容 /* Name: 统计c语言关键字出现次数 Copyright: Author: lingr7 Date: 21/10/18 10:05 Description: 完全根据<C程序设计语言>K&R版本6.3结构数组内容编写.在dev c++5.11中编译运行成功 一个项目文件.dev,内含calc.h,getch.c,getop.c,keytab.h,tongjimain.c.4个子

python之统计字符串中字母出现次数

dic=dict() d={} s=set() s='helloworld' (1)d=dict() for x in s: if x not in d.keys(): d[x]=1 else: d[x]=d[x]+1 print(d) (2)d2=dict() for x in s: d2[x]=d2.get(x,0)+1 print(d2) (3)d3=dict() for x in s: d3[x]=s.count(x) print(d3) 上面一共给出了三种方法,均是以字典的形式输出,但

如何统计局域网内的邮件收发次数和流量?

使用WFilter上网行为管理软件,您可以很直观的监控到局域网内的邮件收发,并且对其进行统计. 本文,我们将简单介绍WFilter的邮件统计功能. 如果需要了解邮件监控,审计,收发限制的其他方案,请参考:WFilter邮件监控方案 1. 在"分类统计"中,选择需要查看的邮件统计报表. 支持"邮件次数统计","邮件大小统计",和"邮件类型统计" 每个报表都可以选择不同的统计字段 设置不同的日期范围 可以设置饼图.柱状图.折线图.

读取一个文件中的字符,统计每个字符出现的次数

1 //统计每个字符出现的次数 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 6 int main() 7 { 8 FILE *fp_read; 9 char ch; 10 int count[26]; 11 int index; 12 fopen_s(&fp_read,"E:\\first.txt","r"); 13 memset(coun