当前位置: 首页 > news >正文

Treemap的应用

Description

巨硬公司(huge-hard)最近计划出品一个字处理软件。软件基本功能已经完成,但还缺少一个单词统计的功能,你的任务就是为该公司写一段程序,完成统计功能。 

需要统计的信息有两项:出现单词的个数和单个单词出现的次数。

Input

输入为一行字符串,即要统计的文本。

Output

输出由若干行组成,第一行是一个整数,表示单词的个数,从第二行开始,每行由字符串、冒号、整数组成,其中字符串是一个出现在文本中的单词,整数则是该单词在文本中出现的次数。

Sample Input

to know everything is to know nothing

Sample Output

7 everything:1 is:1 know:2 nothing:1 to:2
代码:

import java.util.Scanner;
import java.util.TreeMap;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String words[] = str.trim().toLowerCase().split("\\W+");
        int count = 0;
        TreeMap<String, Integer> map = new TreeMap<String, Integer>();
        for (String word : words) {
            if (word.isEmpty())
                continue;
            ++count;
            if (map.containsKey(word)) {
                int freq = map.get(word);
                map.put(word, freq + 1);
            } else {
                map.put(word, 1);
            }
        }
        System.out.println(count);
        for (String key : map.keySet()) {
            System.out.println(key + ":" + map.get(key));
        }
    }
}


相关文章:

  • 《Effective C++》——条款04:确定对象使用前已先被初始化
  • Treemap的使用
  • 数组根据index拆分和查询下标
  • include指令和include动作的区别
  • sql-主键即自增长的设置及语法实现
  • android中的样式主题和国际化
  • sql-go的使用
  • sql 获取新插入的id值的三种方法
  • 关于WCF SessionId的说明
  • idea中的jsp依赖
  • html5页面中拨打电话的方式
  • Cron表达式
  • 参数修饰符ref,out,params的区别
  • filter的简单介绍
  • 【转】深入理解java异常处理机制
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Android交互
  • Angular数据绑定机制
  • C学习-枚举(九)
  • es6要点
  • JSONP原理
  • Laravel5.4 Queues队列学习
  • React 快速上手 - 07 前端路由 react-router
  • 阿里云Kubernetes容器服务上体验Knative
  • 码农张的Bug人生 - 初来乍到
  • 人脸识别最新开发经验demo
  • 如何优雅地使用 Sublime Text
  • 推荐一个React的管理后台框架
  • 微服务核心架构梳理
  • 我的业余项目总结
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #Linux(Source Insight安装及工程建立)
  • (30)数组元素和与数字和的绝对差
  • (SpringBoot)第二章:Spring创建和使用
  • (编译到47%失败)to be deleted
  • (二)fiber的基本认识
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .Mobi域名介绍
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net开发时的诡异问题,button的onclick事件无效
  • @property python知乎_Python3基础之:property
  • [CentOs7]图形界面
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用
  • [Django开源学习 1]django-vue-admin
  • [GXYCTF2019]BabyUpload1 -- 题目分析与详解
  • [I2C]I2C通信协议详解(二) --- I2C时序及规格指引
  • [Java] IDEA Scala环境搭建
  • [Java][方法引用]构造方法的引用事例分析
  • [LeetCode 127] - 单词梯(Word Ladder)
  • [linux]--关于进程概念(上)