分析以下需求,并用代码实现

  •  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)

思路

  •  1.创建map集合,键为Character,值为Integer
    2.键盘录入字符串 str
    3.将字符串转换为字符数组,并遍历这个字符数组,获取每个字符
    4.在循环中判断集合中map集合中的键是否包含这个字符
    a)如果map集合中的键不包含这个字符,那么就让map执行put方法,键就是遍历到的字符,值为1
    b)如果map集合中包含这个键,就让map集合的值 + 1存储
    5.循环完毕后,遍历map集合进行打印,打印过程中按照指定格式来进行。

代码

package com.itheima;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set; public class Test4 {
public static void main(String[] args) {
//创建map集合
Map<Character,Integer> map = new HashMap<Character,Integer>(); //创建键盘录入对象
Scanner sc = new Scanner(System.in); System.out.println("请输入一行字符串:");
//获取数据
String str = sc.nextLine(); //将字符串转换为字符数组
char[] chs = str.toCharArray();
//遍历字符数组
for (char ch : chs){
// if(map.containsKey(ch)){
// map.put(ch, map.get(ch) + 1);
// } else {
// map.put(ch, 1);
// }
map.put(ch, map.containsKey(ch) ? map.get(ch) + 1 : 1);
}
//获取所有键值对对象的集合
Set<Map.Entry<Character,Integer>> entry = map.entrySet();
//遍历集合
for(Map.Entry<Character,Integer> me : entry){
System.out.println(me.getKey()+"("+me.getValue()+")");
} }

Day_12【集合】扩展案例4_判断字符串每一个字符出现的次数的更多相关文章

  1. Day_13【IO流】扩展案例2_统计指定项目文件中字符出现的次数

    需求分析 统计当前项目下info2.txt文件中, 每个字符出现的个数 文件内容如下: welcome to itheima!!! 最终效果如下: w(1) (2)!(3)t(2)e(3)c(1)a( ...

  2. Day_09【常用API】扩展案例4_将字符串变为字符数组,并将大写字母改为小写,首尾内容不同互换,并将索引为偶数的元素替换

    分析以下需求,并用代码实现 1.键盘录入一个字符串 2.将该字符串变成字符数组(不能使用toCharArray()方法) 3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase() ...

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

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

  4. HashTable集合和练习题_计算一个字符串中每一个字符出现的次数

    HashTable集合 /** * java.util.Hashtable<K,V>集合 implement Map<K,V>接口 * Hashtable:底层也是一个哈希表, ...

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

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

  6. JAVA判断字符串中某个字符存在的个数

    /** * 判断字符串中某个字符存在的个数 * @param str1 完整字符串 * @param str2 要统计匹配个数的字符 * @return */ public static int co ...

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

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

  8. SQL 判断字段中指定字符出现的次数

    原文地址:SQL 判断字段中指定字符出现的次数 原理:将指定字符转换为空,原长度减去转换后的长度就是指定字符的次数. 在做数据处理时遇到一个SQL操作的问题就是有一列关键词字段,字段中包含各种乱七八糟 ...

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

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

随机推荐

  1. DLL/OCX文件的注册与数据执行保护DEP

    注册/反注册dll或ocx文件时,无论是用regsvr32还是DllRegisterServer/DllUnregisterServer,可能会遇到[内存位置访问无效]的问题: 此时把操作系统的数据执 ...

  2. sprint3总结 && sprint4计划

    sprint3总结 在一周时间里,逻辑部分顺利的将数据库,查词,UI部分连接到一起.并且各部分也针对新的要求做出了一些修改,目前数据库和查词alpha版已经完成,UI部分还需要一些美化,逻辑部分也还需 ...

  3. stand up meeting 12/01/2015

    part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云   赶工sprint3,各部分要合在一起时出现各种问题,各种修改测试:UI本身的功能继续实现完善    6 UWP对控件的 ...

  4. google protobuf c++ 反射

    const Descriptor *desc = DescriptorPool::generated_pool()->FindMessageTypeByName(msg_name); asser ...

  5. 关于C++线程池的实现的思考

    今天突然对前些日子一直很疑惑的c++线程池有了新的想法.其实所谓的线程池无非就是两个技术点,一个,多线程,指工作线程和主线程分离,或者说数据接收和处理分两个线程,一般就是讲需要运行的函数放到子线程执行 ...

  6. 纯js时钟特效详细代码分析实例教程

    电子时钟是网上常见的功能,在学习date对象和定时器功能时,来完成一个电子时钟的制作是不错的选择.学习本教程之前,读者需要具备html和css技能,同时需要有简单的javascript基础. 先准备一 ...

  7. mac上安装htop

    对于经常在mac上使用top命令的童鞋来说,htop会是一个更加好看和更加好用的命令,下面就是在mac上安装htop的步骤 1.首先去htop官网去下载,我下的是最新的2.2.0版本,网址是https ...

  8. 权威的国际敏捷认证Certified Scrum Master (CSM)

    权威的国际敏捷认证Certified Scrum Master (CSM) A. 认证前 在学习Certified Scrum Master (CSM)之前,你需要了解: 什么是CSM CSM认证与其 ...

  9. 理解java容器底层原理--手动实现HashMap

    HashMap结构 HashMap的底层是数组+链表,百度百科找了张图: 先写个链表节点的类 package com.xzlf.collection2; public class Node { int ...

  10. AtomineerUtils使用说明

    AtomineerUtils使用说明 VS2015PluginCrackAtomineer 介绍 AtomineerUtils 是国外的一款用于生成源代码注释的一款 VS 插件工具. 这款插件,支持 ...