统计字符串中各个字符的出现的次数

统计字符串中各个字符的出现的次数(Map集合练习)

**
需求:
1.利用键盘录入,输入一个字符串
2.统计该字符串中各个字符的数量(提示:字符不用排序)
3.如:用户输入字符串
“Ifyou-wanttochange-your_fate_I_thinkyoumustcome-to-the-dark-horse-to-learn-java”
程序输出结果:
-(9)I(2)_(3)a(7)c(2)d(1)e(6)f(2)g(1)h(4)i(1)j(1)k(2)l(1)m(2)n(4)o(8)r(4)s(2)t(8)u(4)v(1)w(1)y(3)~(6)
提示:输出结果是排序的(TreeMap)
**

package com.yang.day07.title03;

import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

/**
 * @author WangYang
 * @version 1.0
 * @create 2020-02-08 18:54
 * <p>
 * 1.利用键盘录入,输入一个字符串
 * 2.统计该字符串中各个字符的数量(提示:字符不用排序)
 * 3.如:
 * 用户输入字符串
 * "If~you-want~to~change-your_fate_I_think~you~must~come-to-the-dark-horse-to-learn-java"
 * 程序输出结果:
 * -(9)I(2)_(3)a(7)c(2)d(1)e(6)f(2)g(1)h(4)i(1)j(1)k(2)l(1)m(2)n(4)o(8)r(4)s(2)t(8)u(4)v(1)w(1)y(3)~(6)
 * 提示:输出结果是排序的(TreeMap)
 */
public class Title03 {
    public static void main(String[] args) {
        //1.利用键盘录入,输入一个字符串
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串:");

        //接收输入的字符串
        String line = scanner.nextLine();

        //2.创建TreeMap 集合
        TreeMap<Character, Integer> tm = new TreeMap<>();

        /*
        3.遍历字符串,取出每一字符,
        如果tm 集合中没有改字符那么把该字符添加到tm集合的key位置,value位置赋值为1
        如果tm 集合中存在改字符那么value+1;
        */
        for (int i = 0; i < line.length(); i++) {
            //取出每一个字符做为key
            Character key = line.charAt(i);
            //根据map集合的get(K key)方法获取value值
            Integer value = tm.get(key);
            if (tm.get(key) == null) { //如果get(key)返回的value值为null,那么该字符还没有被添加到集合

                tm.put(key, 1);//该字符作为key,value值为1,添加到集合
            } else { //如果get(key)反回的value值不为null,那么该字符已经出现在集合中
                value++;  //value值加1
                tm.put(key,value); //修改该字符的value值
            }
        }

        //遍历HashMap集合,得到键和值,按照要求进行拼接
        StringBuffer sb = new StringBuffer();

        //得到所有的键值对对象的集合,再进行遍历
        Set<Map.Entry<Character,Integer>> entrys = tm.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            Integer value = entry.getValue();
            sb.append(entry.getKey()).append("(").append(entry.getValue()).append(")");
        }

        System.out.println(sb.toString());
    }
}

结果如下:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值