ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用HasMap集合实现:键盘录入一个字符串,要求统计字符串中每个字符串出现的次数

2022-02-06 21:31:08  阅读:141  来源: 互联网

标签:字符 HashMap HasMap 录入 字符串 返回值 集合


键盘录入一个字符串,要求统计字符串中每个字符串出现的次数

需求:键盘录入一个字符串,要求统计字符串中每个字符串出现的次数。
举例:键盘录入“aababcabcdabcde"
在控制台输出:“a(5)b(4)c(3)d(2)e(1)"


思路:

  1. 键盘录入一个字符串

  2. 创建HashMap集合,键是Character,值是Integer

  3. 遍历字符串,得到每一个字符

  4. 拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值

    如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储

    如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对应的值

  5. 遍历HashMap集合,得到键和值,按照要求进行拼接

  6. 输出结果


代码

import java.util.*;

public class Demo7 {
    public static void main(String[] args) {
        System.out.println("请输入一个字符串:");
        // 键盘录入一个字符串
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        // 创建HashMap集合,键是Character,值是Integer
        HashMap<Character, Integer> hashMap = new HashMap<>();
        // 遍历字符串,得到每一个字符
        for (int i = 0; i < line.length(); i++) {
            char c = line.charAt(i);
            // 拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值
            Integer value = hashMap.get(c);
            // 如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储
            if (value == null) {
                hashMap.put(c, 1);
            } else {
                // 如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对应的值
                hashMap.put(c, ++value);
            }
        }
        // 遍历HashMap集合,得到键和值,按照要求进行拼接
        Set<Map.Entry<Character, Integer>> entries = hashMap.entrySet();
        for (Map.Entry<Character, Integer> entry : entries){
            Character key = entry.getKey();
            Integer value = entry.getValue();
            System.out.print(key+"("+value+")");
        }
    }
}

标签:字符,HashMap,HasMap,录入,字符串,返回值,集合
来源: https://www.cnblogs.com/coderDreams/p/15866405.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有