关于RandomAccessFile

zly361814478 2012-10-20 05:51:41
编写一个Java应用程序,使用RandomAccessFile流统计Hello.txt中的单词,要求如下:

(1)计算全文中共出现了多少个单词(重复的单词只计算一次);

(2)统计出有多少个单词只出现了一次;

(3)统计并显示出每个单词出现的频率,
并将这些单词按出现频率高低顺序显示在一个TextArea中
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zly361814478 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

恩,你这个想法 我一开始也这样想的, 看有没有其他的方法引用 1 楼 的回复:

RandomAccessFile不是很会用。。我当BufferedReader用了。。
单词的个数就是map.size(),对应的频率都存在map的value里面
Java code

public static void main(String[] args) throws IOException ……
[/Quote] 貌似有点不完善。
zly361814478 2012-10-20
  • 打赏
  • 举报
回复
恩,你这个想法 我一开始也这样想的, 看有没有其他的方法[Quote=引用 1 楼 的回复:]

RandomAccessFile不是很会用。。我当BufferedReader用了。。
单词的个数就是map.size(),对应的频率都存在map的value里面
Java code

public static void main(String[] args) throws IOException {
RandomAccessFile randomAccessFile =……
[/Quote]
wapigzhu 2012-10-20
  • 打赏
  • 举报
回复
RandomAccessFile不是很会用。。我当BufferedReader用了。。
单词的个数就是map.size(),对应的频率都存在map的value里面

public static void main(String[] args) throws IOException {
RandomAccessFile randomAccessFile = new RandomAccessFile("aaaa.txt", "r");
Map<String,Integer> map = new HashMap<String, Integer>();
Pattern pattern = Pattern.compile("\\b[a-zA-z]+?\\b");
String str = null;
while ((str = randomAccessFile.readLine()) != null) {
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
String s = matcher.group();
int count = 1;
if(map.get(s) != null)
count += map.get(s);
map.put(s, count);
}
}
System.out.println(map.size());
for(Entry<String,Integer> entry : map.entrySet()){
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧