计算一个字符串中每个词的数量并降序输出

结果:

代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class demo {

    public static void main(String[] args) throws IOException {
        String S = "马佳;刘胜;马佳;刘胜;慧;慧;刘胜;";
        String str[] = S.split(";");

        System.out.println(str.length);

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

        for (String s1 : str) {

            if (!map.containsKey(s1))
                map.put(s1, 1);
            else
                map.put(s1, (map.get(s1)+1));
        }

        List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());

        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {

            public int compare(Map.Entry<String, Integer> mapping2, Map.Entry<String, Integer> mapping1)
            {
                return mapping1.getValue().compareTo(mapping2.getValue());
            }
        });

        Map.Entry<String, Integer> mapping = null;
        for (int i = 0 ;i<list.size() ;i++) {
            mapping = list.get(i);
            if (i<10)
            System.out.println(mapping.getKey() + "=" + mapping.getValue());
        }
    }
}

原文地址:https://www.cnblogs.com/mm20/p/11917000.html

时间: 2024-11-07 22:46:49

计算一个字符串中每个词的数量并降序输出的相关文章

计算一个字符串中每个字符出现的个数

需求:计算一个字符串中每个字符出现的次数 分析: 使用Scanner获取用户输入的字符串 创建Map集合,Key是字符串中的字符,value是字符的个数 遍历字符串,获取每一个字符 使用获取的字符,去Map集合判断key是否存在 key存在:通过字符(key),获取value(字符个数)value++ put(key,value )把新的value存储到Map集合中 key不存在:put(key,1) 遍历Map集合,输出结果 package day13; import java.util.Ha

计算一个字符串中大写字母、小写字母、特殊字符、数字的个数

1 public class Test_123_Test { 2 public static void main(String[] args) { 3 String str = "[email protected]#¥%……&"; 4 int bigs = 0;// 记录大写字母的个数 5 int smalls = 0;// 记录小写字母的个数 6 int others = 0;// 记录其他字符的个数 7 int shuzi = 0; 8 System.out.println

用c语言实现 计算一个字符串中单词的个数

#include<stdio.h> int main() { char string[100]; int i , num=0 ,word=0; char c; gets(string);//从键盘得到一个字符串 for(i=0;(c=string[i])!='\0';i++)//字符不是'\0'就执行循环 { if(c==' ')//遇到空格word置0 { word=0; } else if(word==0)//未遇到空格且word为0则num加一且word置1 { word=1; num+

python文本联系--计算字符串中各个字符的数量

1 #!/usr/bin/python3 2 #-*- coding:utf-8 -*- 3 #计算字符串中,各个字符串的含量 4 str='adfadfafdfaafasdfasdcadf' 5 from collections import Counter 6 str1=Counter(str) 7 keys=sorted(str1) #可以返回str中的唯一值,且按照字母排序 8 #keys ['a', 'c', 'd', 'f', 's'] 9 values=str1.values()

找出一个字符串中最长重复次数的子字符串,并计算其重复次数

原题 找出一个字符串中最长重复次数的子字符串,并计算其重复次数.例如:字符串"abc fghi bc kl abcd lkm abcdefg",并返回"abcd"和2. 我的思路 为了方便表述,我们使用变量src作为原字符串,sub_str作为子字符串. 由于题目要求寻找至少重复2次的最长的子字符串,重点在于最长的子字符串,而不在于重复的最多次数.因此我们可以从长度最长的字符串入手,计算其重复次数.只要重复达到2次,即可返回该字符串. 显然长度最长的子字符串就是原串

spoj 694 求一个字符串中不同子串的个数

SPOJ Problem Set (classical) 694. Distinct Substrings Problem code: DISUBSTR Given a string, we need to find the total number of its distinct substrings. Input T- number of test cases. T<=20; Each test case consists of one string, whose length is <=

kohana如何从一个字符串中过滤掉特定的词语

Text::censor()斱法会字符串中过滤掉特定单词.要过滤的词作为一个数组参数传递.词语可以被整个或 者局部替换成你在配置中设置的字符串. 用法 创建一个你定义的敏感词配置文件 /home/kerkness/kohana/application/config/censor.php return array( 'words' => array( 'Codeigniter', 'Zend', 'CakePHP', 'Yii', ), ); 使用  censor()斱法从一个字符串中过滤掉这些词

求一个字符串中连续出现最多的子串次数

时间:2014.09.12 地点:基地 心情:明天就要和欧阳去武汉面试阿里了,整理一下同学求助的一道题,写下这一篇,愿一切顺利. 一.题目: 求一个字符串中连续出现最多的子串次数:例如字符串abcbcbcabc,连续出现次数最多的子串是bc,出现次数为3. 二.分析 方法:后缀思路 比如题目中举例中的字符串,它的后缀有: abcbcbcabc  0 bcbcbcabc  1 cbcbcabc  2 bcbcabc  3 cbcabc  4 bcabc  5 cabc  6 abc  7 bc  

算法积累(字符串转换驼峰,判断一个字符串中那个字母出现次数最多,并且出现了几次)

因为算法比较烂,所以想做一下这方面的积累. 尽量能够每天学习一个新算法吧.(不过估计很悬) 好吧,今天第一个是字符串转换驼峰 直接上代码 var str = 'toupper-case'; var arr = str.split('-'); //toupper,case for (var i = 1; i < arr.length; i++) { //把除了第一个数组后面的数组的第一个值设置为大写然后大写字母和去掉第一个字符的剩下的字符进行拼合 arr[i] = arr[i].charAt(0)