Java实现统计字符串出现的次数
作者:Januea 发布时间:2022-12-19 01:06:52
标签:java,统计,字符串
本文实例为大家分享了Java实现统计字符串出现次数的具体代码,供大家参考,具体内容如下
需求:
健盘录入一个字符串,要求统计字符串中每个字符串出现的次数。
举例:键盘录入"aababcabcdabcde"
在控制台输出: "a(1)b(4)c(3)d(2)e(1)"
思路:
①健盘录入一个字符串
②创建HashMap集合,键是Character, 值是Integer
③遍历字符申,得到每一个字符
④拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值
如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储
如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对成的值
⑤遍历HashMap集合,得到键和值,按照要求进行拼接
⑥输出结果
public class StrCount {
public static void main(String[] args) {
//健盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("清输入一串字符串:");
String line = sc.nextLine();
//创建HashMap集合,键是Character, 值是Integer
HashMap<Character, Integer> map = new HashMap<>();
//遍历字符申,得到每一个字符
for (int i = 0; i < line.length(); i++) {
char key = line.charAt(i);
//拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值
Integer value = map.get(key);
if (value == null) {
//如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储
map.put(key, 1);
} else {
//如果返回值不是ull:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对成的值
value++;
map.put(key, value);
}
}
//遍历HashMap集合,得到键和值,按照要求进行拼接
StringBuilder sb = new StringBuilder();
Set<Character> keySet = map.keySet();
for (Character key : keySet) {
Integer value = map.get(key);
sb.append(key).append("(").append(value).append(")");
}
//输出结果
String result = sb.toString();
System.out.println(result);
}
}
最后那个遍历输出是跟着老师写的,只不过没贴我写的下面这个是因为我觉得老师的那个更符合题意,使用的是拼接,结果都一样。
//遍历HashMap集合,得到键和值,按照要求进行拼接
Set<Character> keySet = map.keySet();
for (Character key : keySet) {
Integer value = map.get(key);
//输出结果
System.out.print(key + "(" + value + ")");
}
来源:https://blog.csdn.net/Januea/article/details/120845969
0
投稿
猜你喜欢
- 导语:有些时候我们所需要查询的数据量比较大,但是jvm内存又是有限制的,数据量过大会导致内存溢出。这个时候就可以使用流式查询,数据一条条的返
- 一:什么是SparkSQL?(一)SparkSQL简介Spark SQL是Spark的一个模块,用于处理结构化的数据,它提供了一个数据抽象D
- 本文实例为大家分享了java实现文件上传下载的具体代码,供大家参考,具体内容如下一.上传1.前端:<form method="
- 重写 equals()方法 和 hashCode()方法最近看了学习了集合的简单的知识,碰到了讲解 Set 的部分,感觉很好奇,这里对于 S
- flutter material widget组件之信息展示组件,供大家参考,具体内容如下widget分为两类:widgets librar
- 一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中I
- 第一部分: 使用idea 打包工程jar 1.准备好一份 开发好的 可执行的 含有main方法的&nbs
- 1. 异常1.1 try…catch异常处理try catch的异常处理的格式写法 :try{ &nbs
- sms4j 2.0 全新来袭即sms-aggregation成功加入dromara之后,很多人向我们反应了项目名称太长不好记,也太绕口, 在
- 配置文件中设置通常在公司级别的项目中,我们可能会写多个application- dev/prod.yml ,然后我们通常会在applicat
- 文件资源操作Spring 定义了一个 org.springframework.core.io.Resource 接口,Resource 接口
- 一、什么是iText?在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件。通过在服务器端使用Js
- 刚开始做开发学习的小伙伴可能在有一个知识上面有错误的认知,我们天天写程序是在Idea下写的,运行也是在Idea下运行的。但是实际开发完成后,
- 闲来无事,用C++做了一个图书管理系统,主要有借书、还书、图书管理、用户管理等功能,主要用到的技术有容器和文件,以及类的封装#include
- 开放端口安全组没开放端口是原罪!!!导致好多BUG费时费力。Hbase悄悄 * 的用了好多端口,比如被我抓到的42239,直接搜索报错药不对症
- 本文实例讲述了Java基于IO流读取文件的方法。分享给大家供大家参考,具体如下:public static void readFile(){
- 请求SpringBoot接受前台参数的六种方式,首先因为从前台发送的请求没有界面的话只能是从地址栏发送并且只能是Get请求,为了测试其他的请
- 一、定界符成帧Framer接口package framer;import java.io.IOException;import java.i
- Eureka注册的服务之间互相调用1.请求方启动类添加注解,扫描Eureka 中的全部服务@SpringBootApplication@En
- 其实这个表示有点不太对,应该是 Druid 动态切换数据源的方法,只是应用在了 springboot 框架中,准备代码准备了半天,之前在一次