社区
Java SE
帖子详情
有关使用Scanner读取长篇文章的问题
等待自由
2012-06-07 07:43:57
要求 读取已知的 长篇文章 请使用 Scanner 且 取出 文章中 单词出现 最多的单词 老师留的作业 太困难啊 请大虾们帮忙看下 谢谢了
...全文
171
5
打赏
收藏
有关使用Scanner读取长篇文章的问题
要求 读取已知的 长篇文章 请使用 Scanner 且 取出 文章中 单词出现 最多的单词 老师留的作业 太困难啊 请大虾们帮忙看下 谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
myisfei
2012-06-07
打赏
举报
回复
高手,[Quote=引用 2 楼 的回复:]
用正则吧
[/Quote]
Seanake
2012-06-07
打赏
举报
回复
我有了java7的一些特性,楼主可以参考相应文章。
Seanake
2012-06-07
打赏
举报
回复
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CountWord {
public static void main(String[] args) {
HashMap<String, Integer> hm = new HashMap<>();
int sum = 1;
try (FileInputStream fis = new FileInputStream("a.txt");
Scanner scan = new Scanner(fis)) {
while (scan.hasNext()) {
Matcher m2 = Pattern.compile("\\w+").matcher(scan.next());
while (m2.find()) {
if (hm.containsKey(m2.group())) {
sum = (int) hm.get(m2.group());
sum++;
hm.put(m2.group(), sum);
} else {
hm.put(m2.group(), sum);
}
}
sum = 1;
}
System.out.println("文章单词统计如下: " + "\n" + hm);
int max = 1;
String s = "";
for (String key : hm.keySet()) {
if (max < (int) hm.get(key)) {
max = (int) hm.get(key);
s = key;
}
}
System.out.println("出现最多的单词是:" + s + "\n出现" + max + "次");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
文章为:
"mmmm mm"mmmmmmmmmmmmmm m"m mmm mm mm./ .mm' mmmm mmmmm mmm mm
输出结果为:
文章单词统计如下:
{mm=5, mmmmmmmmmmmmmm=1, mmmmm=1, mmm=2, mmmm=2, m=2}
出现最多的单词是:mm
出现5次
我的QQ空间:
http://user.qzone.qq.com/1689728840/infocenter
Seanake
2012-06-07
打赏
举报
回复
用正则吧
学仙只为看看天
2012-06-07
打赏
举报
回复
可以将每个单词放在HashMap里面,Map的key为单词,value为单词出现次数(如果之前有的话,value++,如果没有的话,value置为1,因为用Hash实现,所有查找调用contains(key)方法效率不会太差)。
处理完所有单词后,在遍历一遍Map中的元素,找出value最大的。
《java核心技术 卷一》笔记
深入解析Java编程基础,涵盖数据类型、运算符、控制结构、字符串处理、输入输出、类和对象概念,详解Java核心库
使用
,如StringBuilder、
Scanner
、LocalDate等。
CAD+说明书三面翻转广告牌设计
CAD+说明书三面翻转广告牌设计
Timeseries-Baseline-Drift-Risk-Gate-v1.0-原创源码与文档.zip
本批资源均为独立原创的本地优先 JavaScript 工程工具,包含完整源码、README、MIT License、原创与授权声明、可复现示例、3 项自动化测试、离线 JSON、HTML、SVG 报告与 1080×720 真实运行截图;适合前端开发、智能体工程、质量验证和技术审计学习
使用
。无需复制或依赖榜单项目源码、模型权重及第三方受限素材,Node.js 18+ 可直接运行。
政府科技管理部门如何高效提升区域科技成果转化效率?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
高校科研管理人员需要哪些工具提升成果转化效率?.docx
高校科研管理人员需要哪些工具提升成果转化效率?
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章