Java 利用Map集合计算一个字符串中每个字符出现的次数
步骤分析
1、给出一串字符串,字符串中可以包含字母、数字、符号等等。
2、创建一个Map集合,key是字符串中的字符,value是字符的个数。
3、遍历字符串,获取每一个字符。
5、使用获取到的字符,去集合Map判断key(字符)是否存在。
6、假如key(字符)存在,那么该key对应的value数值增加1,即该字符的数量加一。
7、假如key(字符)不存在,value的值设为1,并将key-value添加到Map集合中。
8、遍历Map集合,输出每个字符个数的结果。
代码实现
创建一个CharNumber类,在类中定义keyValue方法,计算字符串中每个字符的个数
- public class CharNumber {
- /**
- * 计算字符串中每个字符的个数
- * @param string 要被计算字符个数的字符串
- * @return <字符-个数> 的Map集合
- */
- public static HashMap<Character, Integer> keyValue(String string) {
- // 字符串转换为字符数组
- char[] chars = string.toCharArray();
- // 创建一个Map集合用来存放记录
- HashMap<Character, Integer> hashMap = new HashMap<>();
- // 遍历字符串,获取每一个字符
- for (char c : chars) {
- // 使用获取到的字符,去Map集合判断key是否存在
- // 利用Map集合的containsKey()方法,判断key是否存在
- // 如果存在 value ++,如果不存在 value = value
- if (hashMap.containsKey(c)) {
- // key存在,获取key对应的value,数值增加一,然后再更新到集合中
- Integer value = hashMap.get(c);
- value ++;
- hashMap.put(c, value);
- } else {
- // key不存在,将key添加到Map集合中,且其对应的value为1
- hashMap.put(c, 1);
- }
- }
- return hashMap;
- }
- }
创建一个CharNumber类,在类中定义iteratorMap方法,遍历输出计算结果
- public class CharNumber {
- /**
- * 遍历输出Map集合
- * @param hashMap <字符-个数> 的Map集合
- */
- public static void iteratorMap(HashMap<Character, Integer> hashMap) {
- // 调用Map集合的entrySet()方法,获取集合Map的Key-Value,赋值给Set集合
- Set<Map.Entry<Character, Integer>> set = hashMap.entrySet();
- // 创建Set集合的迭代器
- Iterator<Map.Entry<Character, Integer>> kvIterator = set.iterator();
- // 迭代输出Set集合
- // hasNext():是否存在下一个元素
- // next():获取下一个元素
- while (kvIterator.hasNext()) {
- Map.Entry<Character, Integer> kv = kvIterator.next();
- System.out.println("字符'" + kv.getKey() + "'的个数是:" + kv.getValue());
- }
- }
- }
测试一下CharNumber类,随便输入一串字符串,计算每个字符的个数
- public class DemoCharNumber {
- public static void main(String[] args) {
- Scanner scn = new Scanner(System.in);
- System.out.print("请输入一个字符串:");
- String string = scn.next();
- CharNumber.iteratorMap(CharNumber.keyValue(string));
- }
- }
- 运行代码(注意,不能输入空格):
- 请输入一个字符串:dafsdaganjsda!!!!!!
- 字符'a'的个数是:4
- 字符'!'的个数是:6
- 字符's'的个数是:2
- 字符'd'的个数是:3
- 字符'f'的个数是:1
- 字符'g'的个数是:1
- 字符'j'的个数是:1
- 字符'n'的个数是:1
代码总和
CharNumber类
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Set;
- public class CharNumber {
- public static HashMap<Character, Integer> keyValue(String string) {
- char[] chars = string.toCharArray();
- HashMap<Character, Integer> hashMap = new HashMap<>();
- for (char c : chars) {
- if (hashMap.containsKey(c)) {
- Integer value = hashMap.get(c);
- value ++;
- hashMap.put(c, value);
- } else {
- hashMap.put(c, 1);
- }
- }
- return hashMap;
- }
- public static void iteratorMap(HashMap<Character, Integer> hashMap) {
- Set<Map.Entry<Character, Integer>> set = hashMap.entrySet();
- Iterator<Map.Entry<Character, Integer>> kvIterator = set.iterator();
- while (kvIterator.hasNext()) {
- Map.Entry<Character, Integer> kv = kvIterator.next();
- System.out.println("字符'" + kv.getKey() + "'的个数是:" + kv.getValue());
- }
- }
- }
DemoCharNumber类
- // 测试
- import java.util.Scanner;
- public class DemoCharNumber {
- public static void main(String[] args) {
- Scanner scn = new Scanner(System.in);
- System.out.print("请输入一个字符串:");
- String string = scn.next();
- CharNumber.iteratorMap(CharNumber.keyValue(string));
- }
- }
Java 利用Map集合计算一个字符串中每个字符出现的次数的更多相关文章
- 利用HashMap计算一个字符串中每个字符出现的次数
问题描述:计算一个字符串中每个字符出现的次数 问题分析:每个字符串对应着它的次数,且字符串唯一不重复,这让我们想到了HashMap中的键值对. 1.使用Scanner获取字符串 2.遍历字符串,获取每 ...
- JAVA经典题--计算一个字符串中每个字符出现的次数
需求: 计算一个字符串中每个字符出现的次数 思路: 通过toCharArray()拿到一个字符数组--> 遍历数组,将数组元素作为key,数值1作为value存入map容器--> 如果k ...
- 用es6的Array.reduce()方法计算一个字符串中每个字符出现的次数
有一道经典的字符串处理的问题,统计一个字符串中每个字符出现的次数. 用es6的Array.reduce()函数配合“...”扩展符号可以更方便的处理该问题. s='abananbaacnncn' [. ...
- Java基础知识强化之集合框架笔记61:Map集合之统计字符串中每个字符出现的次数的案例
1. 首先我们看看统计字符串中每个字符出现的次数的案例图解: 2. 代码实现: (1)需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5) ...
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_08 Map集合_10_练习_计算一个字符串中每个字符出现的次数
- Hashtable集合 --练习题_计算一个字符串中每个字符出现次数
Hashtable集合 java.util.Hashtable<K,V>集合 implements Map<K,V>接口 Hashtable:底层也是一个哈希表,是一个线程安 ...
- Java统计一个字符串中各个字符出现的次数
相信很多人在工作的时候都会遇到这样一个,如何统计一个字符串中各个字符出现的次数呢,这种需求一把用在数据分析方面,比如根据特定的条件去查找某个字符出现的次数.那么如何实现呢,其实也很简单,下面我贴上代码 ...
- 计算一个字符串的每个字符出现的次数案例——Map集合
其中,字符的包装类是Character;字符串包装类是String: 遍历字符串转换的数组,每个元素都是一个字符,看创建的这个集合有木有,一开始肯定是没有的其实,字符作为key,所以判断的是这个创建的 ...
- Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)
import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...
随机推荐
- servicemix-3.2.1 内置的服务引擎和绑定组件
服务引擎: servicemix-bean servicemix-camel servicemix-cxf-se servicemix-drools servicemix-eip servicemix ...
- 2019-4-12-WPF-绑定的默认模式
title author date CreateTime categories WPF 绑定的默认模式 lindexi 2019-04-12 09:38:58 +0800 2019-04-12 09: ...
- Jasypt加密SpringBoot配置文件
如果 SpringBoot 的 properties 文件中含有用户名密码等敏感信息,为了安全起见需要对明文密码加密.Jasypt 是用来加密的 jar 包. 1.引入 Jasypt 在 pom.xm ...
- 移动端android上line-height不居中的问题的解决
废话不多话,直接上代码,如下: .btn { width: 1.5rem; max-width: 100px; text-align: center; height: .56rem; font-wei ...
- IDEA 创建普通的maven+java项目(入门)
配置IDEA2017,maven3.5.2 ,Java1.8 其实大部分的IDEA都差不多,不用纠结版本之前的差异. 第一步:File-->New-->Project 第二步:出现new ...
- Weblogic/WAS之Full GC监控与计算
在网上看到关于内存回收机制,同大家一起分析探讨.堆内存划分为Eden.Survivor 和 Tenured/Old 空间,如下图所示: Minor GC 会清理年轻代的内存,Major GC 是清理老 ...
- logisim自动生成电路
之前再做有关logisim有关的实验时,一直在傻乎乎地连线,而我是看了mooc有关的视频时,才知道logisim有自动连线的功能. 自动连线需要事先知道输入与输出的真值表或者全部的表达式,将其填入lo ...
- Linux网络IO模型
同步和异步,阻塞和非阻塞 同步和异步 关注的是结果消息的通信机制 同步:同步的意思就是调用方需要主动等待结果的返回 异步:异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态通知,回调函 ...
- java日志学习(持续更新)
1.Java实现日志 java日志体系大体可以分为三个部分:日志门面接口.桥接器.日志框架具体实现.原生日志实现(http://www.importnew.com/16331.html) Java日志 ...
- schema list validator --python cerberus
工作中需要对如下json结构进行验证: "ActiveStatus" : [ { "effectiveDates" : { "effectiveFro ...