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

Map练习,统计输入字符串的个数

package Day17;/*
 *@author wanghongyuan
 *@Create 2020/12/26 8:31
 */

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

/*
    练习题目
        计算一个字符串中每个字符出现的个数

   分析:
      1.使用Scanner获取用户输入的字符串
      2.创建一个map集合,Key 是字符串的字符, value是字符出现的个数
      3.遍历字符串,获取每一个字符
      4.使用获取到的字符,去Map集合判断key是否存在
        key存在:
            通过字符(key),获取value(字符个数)
            value++;
            put(key,value)把新的value存储到Map集合中
        key不存在
            put(key,1)
      5.遍历Map集合,输出结果
 */
public class Demo01MapTest {
    public static void main(String[] args) {
//        1.使用Scanner获取用户输入的字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符:");
        String str = sc.next();
//        2.创建一个map集合,Key 是字符串的字符, value是字符出现的个数
        HashMap<Character, Integer> map = new HashMap<>();
//        3.遍历字符串,获取每一个字符
        for (char c :str.toCharArray()){
//        4.使用获取到的字符,去Map集合判断key是否存在
            if (map.containsKey(c)){
                // 存在
                Integer value = map.get(c);
                value++;
                map.put(c,value);
            }else {
//             key不存在
                map.put(c,1);
            }
        }
//        5.遍历Map集合,输出结果
        for (Character key :map.keySet()){
            Integer value = map.get(key);
//            连接这两个值需要中间加个字符隔开,不然的话两个值会相加成为整数
            System.out.println(key+"--->"+value);
        }
    }
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 斗地主综合案例有序版
  • Throwable中Exception/Error异常的分类及处理
  • 异常处理的过程
  • 异常的几个注意事项
  • 如何自定义异常类
  • 2020年年终总结
  • Thread类的使用方法
  • 异常的总结
  • Thread类的获取线程名称和设置线程名称
  • Runnable类
  • 匿名内部类方式实现线程的创建
  • ThreadSafe解决线程安全的问题
  • 资源唤醒案例
  • 线程池的使用
  • Lambda标准格式
  • ----------
  • 08.Android之View事件问题
  • css的样式优先级
  • express.js的介绍及使用
  • Git的一些常用操作
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • passportjs 源码分析
  • vue2.0项目引入element-ui
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 今年的LC3大会没了?
  • 理清楚Vue的结构
  • 前端js -- this指向总结。
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 使用权重正则化较少模型过拟合
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 以太坊客户端Geth命令参数详解
  • 自定义函数
  • Spring第一个helloWorld
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ​一些不规范的GTID使用场景
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #单片机(TB6600驱动42步进电机)
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (1)STL算法之遍历容器
  • (3)llvm ir转换过程
  • (SERIES12)DM性能优化
  • (八)Flask之app.route装饰器函数的参数
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (四)事件系统
  • (一)UDP基本编程步骤
  • (转) Face-Resources
  • (转)Scala的“=”符号简介
  • .Net Core 笔试1
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET 表达式计算:Expression Evaluator
  • .Net接口调试与案例