Java 小模块之--统计字符串中元素个数

曾经看过我Stream或者Guava类库等文章的小伙伴应该很明白我这篇博文的意义所在了

一是给读者提供综合的博文入口 二是自己也总结一下思路

ps: 之前没看过小编文章的小伙伴也不要紧 可以先看下本文所介绍的几种处理方法 如果觉得还不错 可以点击文章末尾的链接跳转具体页面进行探讨

普通方式(Map)

Map map1=new TreeMap<>();

String str="112221324kassxsbx";

int count;

//遍历字符串 用字符串指定下标的值做运算

for(int i=0;i

//每次循环前初始化count的值

count=1;

//判断map集合中是否存在i下标对应的字符串的值 不存在则将count=1 存入

if(!map1.containsKey(str.charAt(i))) {map1.put(str.charAt(i), count);}

//如果存在 则把count+1后存入

else {

count+=map1.get(str.charAt(i));

map1.put(str.charAt(i), count);

}

}

//遍历map集合

map1.forEach((k,v)->log(k+"出现次数"+v));

// 1出现次数3

// 2出现次数4

// 3出现次数1

// 4出现次数1

// a出现次数1

// b出现次数1

// k出现次数1

// s出现次数3

// x出现次数2

jdk8 Stream处理

String str="1233ADddsd";

/**这里将字符串转换为字符数组再转换为集合

利用了Hutool的万能转换器的技术*/

var treemap=new TreeMap<>(toList(convert(char[].class, str))

//将集合转换为Stream

.stream()

//排序Stream中的元素

.sorted()

//利用数据分组和分组后子集处理技术

//将数据按照Stream中每个元素本身进行分组 并将每组元素个数返回

.collect(Collectors.groupingBy(ic->ic,Collectors.counting())));

//遍历集合

treemap.forEach((k,v)->log(k+"出现的次数"+v));

// 1出现的次数1

// 2出现的次数1

// 3出现的次数2

// A出现的次数1

// D出现的次数1

// d出现的次数3

// s出现的次数1

是不是觉得这样已经简便了很多 但是不要急 我们有更好的

Guava 类库处理

String string="1234234qwew";

//利用Guava中的新集合类型 Multiset 存储数据的特性

Multiset create = HashMultiset.create();

//字符串转换为集合的技术 依旧利用Hutool中的万能转换器 实在是方便啊!!!

create.addAll(toList(convert(char[].class,string)));

//结合Stream的查重和排序对集合中元素进行过滤

create.stream().distinct().sorted().forEach((ss)->log(ss+"出现和贺词"+create.count(ss)));

// 1出现和贺词1

// 2出现和贺词2

// 3出现和贺词2

// 4出现和贺词2

// e出现和贺词1

// q出现和贺词1

// w出现和贺词2

到这里代码就又简便高级许多吧 但是我们还有更好的

Hutool 类库处理

String string="1234234AqAw34qw";

/**利用 IterUtil 下的countMap :

根据集合返回一个元素计数的Map,

所谓元素计数就是假如这个集合中某个元素出现了n次,

那将这个元素做为key,n做为value*/

Map, Integer> countMap =new TreeMap(countMap(toList(convert(char[].class,string))));

countMap.forEach((k,v)->log(k+" 出现了几次: "+v));

// 1 出现了几次: 1

// 2 出现了几次: 2

// 3 出现了几次: 3

// 4 出现了几次: 3

// A 出现了几次: 2

// q 出现了几次: 2

// w 出现了几次: 2

最后这一行代码的解决方式大家可否喜欢呐!!!

java map 元素个数_Java 小模块之--统计字符串中元素个数相关推荐

  1. python统计文字个数_python如何统计字符串中字母个数?

    方法:首先用"str_count = 0"定义字母的字符初始个数为0:接着遍历字符串,判断字符串内各字符的类型,并将字母个数累加:最后用"print('字母 = %d' ...

  2. python统计字符串数字个数_python统计字符串中数字个数_后端开发

    python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...

  3. R语言nchar函数统计字符串中字符个数实战

    R语言nchar函数统计字符串中字符个数实战 目录 R语言nchar函数统计字符串中字符个数实战 #基础语法

  4. java 统计字符串中字符个数_java实现统计字符串中字符及子字符串个数的方法示例...

    本文实例讲述了java实现统计字符串中字符及子字符串个数的方法.分享给大家供大家参考,具体如下: 这里用java实现统计字符串中的字符(包括数字.大写字母.小写字母以及其他字符)个数,以及字符串的子字 ...

  5. JS笔记(字符串篇)——字符串当中找出元素出现的位置和次数统计字符串中出现最多元素的字符与次数

    文章目录 字符串的特性 字符串的不可变性: 常用的几个函数 1,☆indexOf 返回字符所在位置 indexOf('字符') 返回字符所在的位置,如果不存在,则返回-1 indexOf('字符' , ...

  6. java Map统计字符串中元素的数量

    public int firstUniqChar(String s) {Map<Character, Integer> map = new HashMap();char[] chars = ...

  7. java提取字符串中的数字并升序排序_java小练习,将字符串中的数值进行升序排序...

    问题引出:正常情况下用int数组可以直接用sort()方法排序,但是字符串不能. 思路:将字符串变成字符串数组,字符串数组变成int数组,再进行排序,排序后再变成字符串 将字符串中的数值从小到大排序 ...

  8. python统计字符串中字母个数字母无视大小写_判断一个字符串中字母的个数(无视大小写)...

    其实Java学习中还是笔试中基本都会遇到这样类似的问题,统计一个字符串中a~z的个数: 代码如下: public class Wheel { public static void main(Strin ...

  9. 统计字符串中单词个数

    要求:输入一个字符串,统计每个单词的个数.单词间用空格隔开,可多个空格,写出自己认为高效的算法. 例如:输入:I love love China 输出为: I: 1 love: 2 China: 1 ...

最新文章

  1. CentOS Linux下VNC Server远程桌面配置详解
  2. 最全 Prometheus 踩坑集锦
  3. java在线作业系统_在线作业系统论文
  4. 两个不同分支之间的代码合并
  5. java 响应事件,用java响应颜色事件
  6. transmac使用方法_Mac苹果电脑降级方法?
  7. python绘制组织结构图_二、Python的程序组织结构
  8. NLP和CV的双子星,注入Mask的预训练模型BERT和MAE
  9. 在IE浏览器中url传参长度问题
  10. 三种方法帮你恢复删除的文件
  11. 了解算法交易,此篇足矣
  12. html中图片一角的卷起效果,CSS3实现图片折角效果例子
  13. c++快速傅里叶变换、反变换(FFT、IFFT)
  14. c程序设计语言第五单元,人教版七年级语文下册第五单元复习题
  15. 微信聊天记录备份:当前网络状况复杂和连接失败的解决办法
  16. 彩色空间(Color Space)
  17. 什么是继承?Java中如何声明一个类继承另一个类?
  18. 怎样恢复win10分区误删的数据
  19. 深信服上网行为管理——仅用户访问某个特定网站,其他行为拒绝策略
  20. continue 的用法详解

热门文章

  1. 【转】s3c2440 按键驱动 — 字符设备
  2. AW_blog 在任意页设置文章的数量
  3. excel空值读不到java里_第一列中的空值是否阻止Pentaho Spoon中的Excel文件导入?
  4. python写一个完整的小程序_写一个python小程序
  5. allure 测试报告本地打开_Pytest和Allure测试框架(二)
  6. 学习Python+numpy数组运算和矩阵运算看这254页PPT就够了
  7. 微课|中学生可以这样学Python(5.1.3节):列表常用方法
  8. 几行Python代码生成饭店营业额模拟数据并保存为CSV文件
  9. C++ const对成员函数的修饰 及 取地址及const取地址操作符重载
  10. 计算机网络 第四章 网络层