首先需要了解下java的hashmap数据类型:

hashmap是基于哈希表的Map接口的实现。hashmap有两个元素,一个是key(键名),一个是value(键值),就相当于一个字典了,和Python里的字典是一样的。

在一段英文字母中找出每个字母重复数量的实现原理:

将文字中出现的字母,作为键名(key),出现的次数作为键值(value),hashmap中的键名是不能重复的,那么统计这些字母的数量,就变成了统计这些相同键名的数量。

实现方式可以是从第一个字母开始,把字母存到哈希表中去,第一个就是a:1,然后按顺序存第2个字母f:1,如果出现跟前面有的字母重复的话,前面字母的键值就+1,例如afa,遍历到第3个字母的时候,a的键值就变成了2,即a:2,如果遇到空格数字,标点符号,及其他特殊字符就排除掉,不插入,如果遇到标点符号也统计则不需要判断条件,全部都插入即可。

代码如下:

 1 import java.util.HashMap;
 2  3
 4 public class hashmap_examp {
 5
 6     public static void main(String[] args){
 7         HashMap<String,Integer> map = new HashMap<String,Integer>();
 8         String str="afashfjgjkhlnmash,^566*整数gshkjshgksdfsgdfhjk";
 9         for (int i=0;i<str.length();i++){
10             char c=str.charAt(i);
11             String key=String.valueOf(c);
12             if(map.containsKey(key)){
13                 Integer value=map.get(key);
14                 map.put(key, value+1);
15             }
16             else{
17                 //map.put(key, 1); 统计所有的字符,包括中文
18                 if(c>='A'&&c<='Z'||c>='a'&&c<='z'){//利用ascii码去除字符串的数字,空格,标点符号,特殊字符
19                     map.put(key, 1);
20                 }
21             }
22         }
23         System.out.println(map);
24     }
25 }

输出结果:

{f=4, g=4, d=2, s=6, a=3, n=1, l=1, m=1, j=4, k=4, h=6}

转载于:https://www.cnblogs.com/sunshishi/p/4773077.html

在一段英文字母中找出每个字母重复数量的方法(Java)相关推荐

  1. 在一个字符串中找出元音字母a,e,i,o,u出现的次数

    #include <stdio.h> #include <string.h> int main() {char c[100];gets(c);int a = 0,e = 0,i ...

  2. 找出元音字母a,e,i,o,u出现的次数

    描述   在一个字符串中找出元音字母a,e,i,o,u出现的次数.   输入   输入一行字符串(字符串中可能有空格,请用cin.getline(s,counts)方法把一行字符串输入到字符数组s中, ...

  3. 面试题:从n个数中找出第K大的数

    参考https://blog.csdn.net/orangefly0214/article/details/84997668的思路 从有n个元素的乱序数组中找出第k大的元素 方法1:基于冒泡排序和简单 ...

  4. python 词库 匹配_python从一段文本中找出存在于词库的词语

    python从一段文本中找出存在于词库的词语 有现成的库吗? 可能不是最佳答案,只是提供一个思路. 个人觉得这个问题并不需要什么库,先把词库载入,弄成列表什么的.然后再把你需要匹配的文本读入,反过来想 ...

  5. 单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右、从右往左、从上往下或者从下往上。例如下面的迷阵中包含quot等单词。

    单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右.从右往左.从上往下或者从下往上.例如下面的迷阵中包含quot等单词. rmhlzxceuq bxmichelle mnn ...

  6. linux误修改文件名恢复,如何在 Linux 中找出最近或今天被修改的文件-linux修改文件名...

    Linux 用户在命令行上遇到的常见问题之一是定位具有特定名称的文件,如果你知道确定的文件名则可能会容易得假设你忘记了白天早些时候创建的文件的名称(在你包含了数百个文件的 home 文件夹中),但现在 ...

  7. n个数里找出前m个数(或者 从10亿个浮点数中找出最大的1万个)

    转载自:http://blog.csdn.net/winsunxu/article/details/6219376点击打开链接 引子 每年十一月各大IT公司都不约而同.争后恐后地到各大高校进行全国巡回 ...

  8. 一篇英文文档中找出频数最多的10个单词

    """一篇英文文档中找出频数最多的10个单词collections: Counter 提供计数器工具以支持方便和快速的计数 most_common(n) 返回n个最常见元 ...

  9. bat从数组中找出相同数字并删除_全网把Map中的hash()分析的最透彻的文章,别无二家...

    原文地址:https://mp.weixin.qq.com/s/qCHkzs4JPOipB-ZzqrfbeQ 作者: Hollis 你知道HashMap中hash方法的具体实现吗? 你知道HashTa ...

最新文章

  1. 20151217:Web之Repeater使用:添加
  2. PAT甲级1078 Hashing:[C++题解]哈希表、哈希表开放寻址法、二次探测法
  3. 深度学习数学基础(三): 激活函数、正则化函数、损失函数、评价指标
  4. python多线程 不在main_Python多线程
  5. TabControl控件和TabPage的使用
  6. 使用dict和set
  7. CF1237F Balanced Domino Placements(组合计数,dp)
  8. Unix 多进程编程
  9. mybatis批量插入oracle大量数据记录性能问题解决
  10. ElasticSearch highlight搜索结果高亮显示(英文检索)
  11. es6 初级之箭头函数
  12. SD 模拟sip 读写子程序
  13. 《Business Rules Engine Overview》--《业务规则引擎概述》write by Mark Kamoski
  14. mysql carnation_14 springboot+mybatis集成pageHelper分页
  15. renren-fast-vue:关闭ESLint检测
  16. 【typecho插件】typecho邮箱插件LoveXXzhoudedi祝福邮箱typecho插件、小周
  17. 渥太华大学计算机硕士课程,渥太华大学留学生经验分享:攻克语言关最简单的方法就是少用中文...
  18. 一个线程OOM,进程里其他线程还能运行么
  19. transition transform属性造成文字抖动及模糊的解决方法
  20. MySQL索引、视图创建与管理操作实验

热门文章

  1. 毫米波雷达与图像融合之CRF-Net
  2. CentOS7.6搭建LAMP-wordpress论坛搭建
  3. redis----缓存穿透、击穿、雪崩问题解决
  4. 未来已来:探寻2019智博会上的前沿科技
  5. C#实现倒计时的功能
  6. 高中计算机学校分数线,高中职校录取分数线
  7. 京东java面试题目
  8. Java集合篇:Map集合的几种遍历方式及性能测试
  9. rocketMQ原理讲解
  10. 怎么设置永磁同步电机的电流控制角