社区
Java SE
帖子详情
有关使用Scanner读取长篇文章的问题
等待自由
2012-06-07 07:43:57
要求 读取已知的 长篇文章 请使用 Scanner 且 取出 文章中 单词出现 最多的单词 老师留的作业 太困难啊 请大虾们帮忙看下 谢谢了
...全文
173
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核心技术 卷1》笔记
文章
目录《Java核心技术 卷1》笔记API文档1.java . lang . string 1.02.java.lang.StringBuilder 5.03.java.util.
Scanner
5.04.java.Iang.System 1.05.java.io.Console 66.java.io.PrintWriter 1.17. java.nio.file...
深入解析 claude-code-hooks-mastery 中的 crypto-movers-haiku 子代理:加密货币涨跌榜追踪的轻量级实现
本篇
文章
聚焦于当前仓库 `claude-code-hooks-mastery` 中定义的 `crypto-movers-haiku` 子代理(Subagent),以 [crypto-movers-haiku.md](https://link.gitcode.com/i/b62ebcaea6f3ce959ea3575e453228c1) 与其配套的 [crypto_movers_agent_prom
园区如何有效推动智能制造转型升级,但缺乏专业服务体系支撑?.docx
园区如何有效推动智能制造转型升级,但缺乏专业服务体系支撑?
高校科研处如何破解科技成果转化难,提升科研效益?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
AutoHotkey 2.0.28 自动化热键脚本工具 Windows x64(官方zip版)+ 实战脚本与教程
AutoHotkey(AHK)是开源(GPL-2.0)的 Windows 自动化脚本语言,可将任意组合键绑定为快捷操作:发送按键、操作窗口、改剪贴板、弹输入框,效率提升必备。本包为官方 zip 版 2.0.28(x64),解压即用无需安装,附 v2 语法 5 分钟入门教程与三个拿来即用的实战脚本(CapsLock 一键静音、Ctrl+Alt+T 一键日期日记文件、Alt+Q 划词搜索),全部脚本通过官方 /validate 语法校验。
使用
方法:解压后右键 .ahk 脚本选择 AutoHotkey64.exe 打开,或命令行 AutoHotkey64.exe 脚本.ahk 运行,托盘图标可退出。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章