案例:"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. class文件概述

    将java代码编译后会产生class文件,并且一个clas文件会对应唯一一个java类或者接口.下面对一个通过一个简单的例子来简述一下class文件的结构. java代码 public class J ...

  2. Jsoup获取部分页面数据失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml.

    用Jsoup在获取一些网站的数据时,起初获取很顺利,但是在访问某浪的数据是Jsoup报错,应该是请求头里面的请求类型(ContextType)不符合要求. 请求代码如下: private static ...

  3. IntelliJ_13书签

    一.书签视图   二.使用方法 1.添加书签:Ctrl+Shift+数字 2.跳转到书签:Ctrl+数字 来自为知笔记(Wiz)

  4. Redis集群(五):集群搭建

    一.本文目的        演示在一台机器上搭建3主3从的redis集群,通过演示了解redis集群的搭建,使用和注意事项     二.搭建说明        1.同一台机器搭建3主3从的伪集群   ...

  5. Jquery ui autocomplete简单api

    重要说明:与配置选项类似,Autocomplete插件的方法也不是直接调用,而且通过autocomplete()方法进行间接调用.例如: $("#title").autocompl ...

  6. AOPR弹出Order Now窗口怎么办

    当我们忘记了我们自己设置的office密码的时候,需要一款office密码破解软件来帮我们破解,Advanced Office Password Recovery就是这样的一款软件,其简称AOPR.试 ...

  7. C# 不支持关键字: “.;database”。

    解决方案分析:这个一定是链接字符串有问题,核对web.config 和程序的字符串是否有误

  8. js的并行加载与顺序执行

    javaScript文件(下面简称脚本文件)需要被HTML文件引用才能在浏览器中运行.在HTML文件中可以通过不同的方式来引用脚本文件,我们需要关注的是,这些方式的具体实现和这些方式可能会带来的性能问 ...

  9. Sublime Text 3配置C++编译运行

    2016.9.8更新: linux(Ubuntu16.04)下的配置,编译后用终端运行,解决了不能输入的问题 { "encoding": "utf-8", &q ...

  10. bzoj 1030 fail树dp

    dp[i][j][0]代表当前匹配到i号点走了j步且没到过单词节点,1代表到过,直接转移. #include<iostream> #include<cstdio> #inclu ...