package com.AnLI;
/*
需求:
键盘录入一个字符串,要求统计字符串中每个字符串出现的次数
思路:
1.键盘录入一个字符串
2.创建HashMap集合,键是character,值是Integer
3.遍历字符串得到每一个字符
4.拿得到的每一个字符作为键去hashmap中去找对应的值,看其返回值
如果返回值是null:说明改字符在hashmap集合中不存在,就把该字符作为键,1作为值存储
如果返回值不是null:说明该字符在hashmap集合中存在,把该值加1,然后重新存储该字符和对应的值
5.遍历hashmap集合,得到键和值,按照要求进行拼接
6.输出结果
*/
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
public class HashMapDemo {
public static void main(String[] args) {
//键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
String s = sc.nextLine();
//创建hashmap集合
HashMap<Character,Integer> map = new HashMap<>();
//3.遍历字符串得到每一个字符
for (int i=0;i<s.length();i++){
//charAt() 方法用于返回指定索引处的字符
char key = s.charAt(i);
//4.拿得到的每一个字符作为键去hashmap中去找对应的值,看其返回值
Integer value = map.get(key);
if (value == null){
//如果返回值是null:说明改字符在hashmap集合中不存在,就把该字符作为键,1作为值存储
map.put(key,1);
}else {
//如果返回值不是null:说明该字符在hashmap集合中存在,把该值加1,然后重新存储该字符和对应的值
value++;
map.put(key,value);
}
}
//5.遍历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 s1 = sb.toString();
System.out.println(s1);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)