HashMap集合练习: 计算字符串中不同字符出现的个数

JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇)

计算字符串中不同字符出现的个数

需求:
计算一个字符串中每个字符出现次数。
分析:

  1. 获取一个字符串对象
  2. 创建一个Map集合,键代表字符,值代表次数。
  3. 遍历字符串得到每个字符。
  4. 判断Map中是否有该键。
  5. 如果没有,第一次出现,存储次数为1;如果有,则说明已经出现过,获取到对应的值进行++,再次存储。
  6. 打印终结果

代码:

/*
* 计算一个字符串中每个字符出现的次数
*
* */
public class Demo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        //输入字符串
        String s = sc.next();
        //Map集合存储字符和出现次数
        HashMap<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            //遍历字符串
            char c = s.charAt(i);
            //若字符存在,则出现次数+1,若不存在则将字符加入Map集合并设置出现次数为1
            if(map.containsKey(c)){
                Integer value = map.get(c);
                map.put(c,++value);
            }else{
                map.put(c,1);
            }
        }
        //遍历Map集合
        Set<Map.Entry<Character, Integer>> entries = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entries) {
            Character key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println("字符"+key+"的出现次数为"+value);
        }
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
哈夫曼编\译码器 设计要求: 1.初始化,键盘输入字符集大小n,n个字符和n个权植,建立哈夫曼树。 2.编码,利用建好的huffman树生成huffman编码; 3.输出编码; 4.译码功能; 5.字符和频度如下: 字符 空格 A B C D E F G H I J K L M N O P Q 频度 186 64 13 22 32 103 21 15 47 57 1 2 32 20 57 63 15 1 字符 R S T U V W X Y Z 频度 48 51 80 23 8 18 1 16 设计要求 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章; 设计题目三 利用Hash技术统计C源程序关键字的频度 任务描述 扫描一个C源程序,用Hash表存储该程序出现的关键字,并统计该程序的关键字出现的度。用线性探测法解决Hash冲突。设Hash函数为:Hash(Key)=[(Key的首字母序号)*100+(Key的尾字母序号)] Mod 41。关键字39个,参考C语言教材。 ①关键字表的存储结构;②Hash表的结点结构。频度、冲突次数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值