posts - 1,comments - 0,views - 174

用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+" ");也是可以的,运行结果是一样的!

posted on   青祁阳  阅读(174)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示