0
点赞
收藏
分享

微信扫一扫

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

求索大伟 2022-03-24 阅读 96
java


功能说明
        例如 输入字符串 “aaaabbbccddd” , 得到结果 :
        a : 4个, b : 3个, c : 2个, d : 3个

        分析
        获取一个字符串对象创建一个Map集合,键代表字符,值代表次数。
        遍历字符串得到每个字符。
        判断Map中是否有该键。
        如果没有,第一次出现,存储次数为1;
        如果有,则说明已经出现过,获取到对应的值进行++,再次存储。
        打印最终结果
public class HashMapDemo {
    public static void main(String[] args) {
        //键盘录入一个字符串
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String line=sc.nextLine();
        //创建HashMapDemo集合,键是Character,值是Integer
        HashMap<Character,Integer>hm=new HashMap<Character,Integer>();
        //便历一个字符串,得到每一个字符串
        for(int i=0;i<line.length();i++) {
            char key = line.charAt(i);
            //拿得到的每一个字符作为键到HashMap集合中去寻找对应的值,看其返回值
            Integer value = hm.get(key);
            if (value == null) {
                //如果返回值不是null,说明该字符串在HashMap集合中不存在,就把字符串作为键,1作为值存储
                hm.put(key, 1);
            } else {
                //如果返回值是null,说明该字符串在HashMap集合中存在,把该值加1,然后重新存储该字符和对应的值
                value++;
                hm.put(key, value);
            }
        }
        //遍历HashMap集合,得到键和值,按照要求进行拼接
        StringBuilder sb=new StringBuilder();
        Set<Character>keySet=hm.keySet();
        for(Character key:keySet){
            Integer value=hm.get(key);
            sb.append(key).append("(").append(value).append(")");
        }
        String result= sb.toString();
        //输出结果
        System.out.println(result);
    }
}
  • 如果想要有序输出字符串及其输出个数,可使用TreeMap

举报

相关推荐

遍历字符串每个字符

0 条评论