用HashMap实现对文本中出现的单词词频进行统计,并对统计结果进行输出显示!!!
跟着一点一点看代码,慢慢理解刚开始都是这样!
下面是思路
话不多说直接上代码!!!
import java.util.*; public class hashmap { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // 输入一个字符串 Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串:"); String line = sc.nextLine(); // 创建一个hashmap集合,键是Character,值是Integer HashMap<Character, Integer> map = new HashMap<Character, Integer>(); // 遍历字符串 for (int i = 0; i < line.length(); i++) { char key = line.charAt(i);// 这里用charAt()把字符串中元素赋给key当作hashmap集合中的键 Integer value = map.get(key);// 用键在hashmap集合中找到对应值(初始hashmap中是没有东西的,所以刚开始返回的是null) if (value == null) { // 如果返回值为null说明hashmap集合中这个键没有对应值的,给它值赋为1,代表出现了一次 map.put(key, 1); } else { // 如果返回值不为null说明hashmap集合中这个键存在对应值的,给它值加1,代表又出现了一次 value++; map.put(key, value); } } // 遍历hashmap集合的到键和值 StringBuilder sb = new StringBuilder();//创建Stringbuilder类型sb来接收k和v Set<Character> wk = map.keySet();// 获取所有的键 for (Character k : wk) { // 根据键获取对应值 Integer v = map.get(k); sb.append(k).append(":").append(v).append(" ");/*@!!!!@*/ } String result = sb.toString();//把sb转换为String类型 System.out.println(result);//输出 } }
在最后其实也可以不用StringBuilder来写,直接在/*@!!!!@*/前面那里System,out.print(k+";"+v+" ");也是可以的,运行结果是一样的!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具