案例:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
分析
1:定义一个字符串(可以改进为键盘录入)
2:定义一个TreeMap集合
键:Character
值:Integer
3:把字符串转换为字符数组
4:遍历字符数组,得到每一个字符
5:拿刚才得到的字符作为键到集合中去找值,看返回值
是null:说明该键不存在,就把该字符作为键,1作为值存储
不是null:说明该键存在,就把值加1,然后重写存储该键和值
6:定义字符串缓冲区域
7:遍历集合,得到键和值,就按照要求拼接
8:把字符串缓冲区域转化为字符串输出

package cn.idcast8;

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

public class Shiyue26 {
    public static void main(String[] args) {
//定义一个字符串(可以改进为键盘录入)
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String s = sc.nextLine();
/*定义一个TreeMap集合
键:Character
值:Integer
*/
        TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
//把字符串转换为字符数组
        char[] ch = s.toCharArray();
//遍历字符数组,得到每一个字符
        for (char c : ch) {
//拿刚才得到的字符作为键到集合中去找值,看返回值
            Integer i = tm.get(c);
/* 是null:说明该键不存在,就把该字符作为键,1作为值存储
不是null:说明该键存在,就把值加1,然后重写存储该键和值
*/
            if (i == null) {
                tm.put(c, 1);
            } else {
                i++;
                tm.put(c, i);
            }
        }
//定义字符串缓冲区域
        StringBuilder sb = new StringBuilder();
        Set<Character> set = tm.keySet();
//遍历集合,得到键和值,就按照要求拼接
        for (Character key :set) {
            Integer value = tm.get(key);
            sb.append(key).append("(").append(value).append(")");
        }
//把字符串缓冲区域转化为字符串输出
        String reselut = sb.toString();
        System.out.println("result:"+reselut);
    }
}

获取字符串中每个字符出现的次数(利用TreeMap)的更多相关文章

  1. Java基础知识强化之集合框架笔记61:Map集合之统计字符串中每个字符出现的次数的案例

    1. 首先我们看看统计字符串中每个字符出现的次数的案例图解: 2. 代码实现: (1)需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5) ...

  2. 利用HashMap计算一个字符串中每个字符出现的次数

    问题描述:计算一个字符串中每个字符出现的次数 问题分析:每个字符串对应着它的次数,且字符串唯一不重复,这让我们想到了HashMap中的键值对. 1.使用Scanner获取字符串 2.遍历字符串,获取每 ...

  3. 使用Map,统计字符串中每个字符出现的次数

    package seday13; import java.util.HashMap; import java.util.Map; /** * @author xingsir * 统计字符串中每个字符出 ...

  4. 用es6的Array.reduce()方法计算一个字符串中每个字符出现的次数

    有一道经典的字符串处理的问题,统计一个字符串中每个字符出现的次数. 用es6的Array.reduce()函数配合“...”扩展符号可以更方便的处理该问题. s='abananbaacnncn' [. ...

  5. 统计字符串中每个字符出现的次数(Python)

    #统计字符串中每个字符出现的次数 以The quick brown fox jumps over the lazy dog为例 message='The quick brown fox jumps o ...

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

    import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo ...

  7. Java统计一个字符串中各个字符出现的次数

    相信很多人在工作的时候都会遇到这样一个,如何统计一个字符串中各个字符出现的次数呢,这种需求一把用在数据分析方面,比如根据特定的条件去查找某个字符出现的次数.那么如何实现呢,其实也很简单,下面我贴上代码 ...

  8. JAVA经典题--计算一个字符串中每个字符出现的次数

    需求:  计算一个字符串中每个字符出现的次数 思路: 通过toCharArray()拿到一个字符数组--> 遍历数组,将数组元素作为key,数值1作为value存入map容器--> 如果k ...

  9. Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)

    import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...

随机推荐

  1. vim 插件管理

    1 进入自己的vim mkdir ./bundle/vundle 2 在vimrc同级中执行 git clone https://github.com/gmarik/vundle.git ./bund ...

  2. hdu1754 I hate it线段树模板 区间最值查询

    题目链接:这道题是线段树,树状数组最基础的问题 两种分类方式:按照更新对象和查询对象 单点更新,区间查询; 区间更新,单点查询; 按照整体维护的对象: 维护前缀和; 维护区间最值. 线段树模板代码 # ...

  3. 74 partprobe-磁盘管理

    partprobe命令用于重读分区表,当出现删除文件后,出现仍然占用空间.可以partprobe在不重启的情况下重读分区. 语法 partprobe (选项) (参数) 选项 -d:不更新内核: -s ...

  4. 【Alpha版本】项目测试

    我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...

  5. Alpha版本冲刺现场演示和阶段验收的总结

    一共15个组.有13个组参加了今天的现场演示,分别是YZH.Radio Group.FZU5BOYS.静静看.Clean Code.Mod4.F4.For the Dream.Journey of C ...

  6. 在Word2013中多次应用格式刷

    顾名思义,格式刷是为了方便需要跨区域操作时候,能快速的应用格式到相应文本.那么怎么使用word进行格式刷的多次使用呢.我们先来看单次的,这个比较容易,只要在先需要的格式单击一次格式刷,再到需要的文本执 ...

  7. extjs5 常用属性的说明

    uses -- 被引用的类可以在该类之后才加载. requires -- 被引用的类必须在该类之前加载. alias : 相当于别名一样,可以起多个,可以通过xtype创建实例,我现在接触的有三种类型 ...

  8. [转]fastjson常见问题

    转自fastjson wiki说明文档:https://github.com/alibaba/fastjson/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 1. ...

  9. E(X+Y), E(XY), D(X + Y)

    \(X, Y\)为两个随机变量, \(p_X(x), p_Y(y)\)分别为\(X, Y\)的概率密度/质量函数, \(p(x, y)\)为它们的联合概率密度. \(E(X + Y) = E(X) + ...

  10. epon e8-c HG220GS超级密码破解

    网上找了很多管理电信e8-c的破解资料,大多都是明文密码,而hg220gs则为加密的密码,找来找去最后终于找到加密方式了base64,真心不容易 下面从其他博文中转载过来留着记录 低端hack.主要是 ...