/*功能:统计一篇英文中每个单词出现的次数

*实现:用HashMap处理统计,用StringBuffer处理输出

*Date:2014-5-14 深夜

*Author:何龙

*QQ:471628912

*/

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.HashMap;

import java.util.Map;

import java.util.StringTokenizer;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import java.util.Iterator;

public class StringTokenPro extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

private JLabel l1, l2;

private JPanel p1, p2;

private JTextArea input, output;

private JButton b1, b2;

private JScrollPane sc1, sc2;

private Map map;

public StringTokenPro() {

super("【何龙作品】 QQ:471628912");// 设置标题

this.setSize(600, 400); // 设置窗体大小

this.setLocation(100, 100); // 设置窗体位置

this.setResizable(false);// 不可更改窗口大小

// 对底层容器进行布局,注意先创建再使用(习惯性用到谁就new谁)

this.setLayout(new GridLayout(1, 2));

p1 = new JPanel();

p2 = new JPanel();

this.add(p1);

this.add(p2);

// // 对P1进行布局(null)

p1.setLayout(null);

l1 = new JLabel("输入一篇文章:");

l1.setFont(new Font("Kaiti", Font.BOLD, 25));

l1.setBounds(10, 10, 300, 40);

input = new JTextArea();

sc1 = new JScrollPane(input);

sc1.setBounds(10, 50, 250, 230);

b1 = new JButton("解析");

b1.setFont(new Font("Kaiti", Font.BOLD, 25));

b1.setBounds(10, 300, 100, 40);

p1.add(l1);

p1.add(sc1);

p1.add(b1);

b1.addActionListener(this);// 监听b1

// 对p2进行布局(null)

p2.setLayout(null);

l2 = new JLabel("解析后结果:");

l2.setFont(new Font("Kaiti", Font.BOLD, 24));

l2.setBounds(10, 10, 300, 40);

output = new JTextArea();

output.setEditable(false);

sc2 = new JScrollPane(output);

sc2.setBounds(10, 50, 250, 230);

b2 = new JButton("生成报告");

b2.setFont(new Font("Kaiti", Font.BOLD, 22));

b2.setBounds(10, 300, 100, 40);

p2.add(l2);

p2.add(sc2);

p2.add(b2);

b2.addActionListener(this);// 监听b2

}

// 事件儿监听

public void actionPerformed(ActionEvent e) {

if (e.getSource() == b1) {

map = new HashMap();

// 注意每次点击“按钮时”,都必须创建一个新的HashMap,

// 不能在构造方法里创建Map,否者下次点击按钮时会用到上次创建的Map,这样会重叠结果

createMap(); // 生成HashMap

output.setText(createOutput());// 处理输出显示,createOutput()返回字符串。

}

if (e.getSource() == b2) {

output.setText("暂时不作IO处理!!!\n\n" + "谢谢合作!!!");

}

}

// 创建HashMap();

public void createMap() {

StringTokenizer tokens = new StringTokenizer(input.getText(),

", ?.!:\"\'\n\r\t\f");// 注意定界符应该包括空格

while (tokens.hasMoreElements()) {

String word = tokens.nextToken().toLowerCase(); // 小写处理

if (map.containsKey(word)) {

Integer count = (Integer) map.get(word);

map.put(word, new Integer(count.intValue() + 1));

} else {

map.put(word, new Integer(1));

}

}

}

// 将HashMap字符串化

public String createOutput() {

StringBuffer output = new StringBuffer("统计每个单词出现的频率:\n");

Iterator keys = map.keySet().iterator();

while (keys.hasNext()) {

Object currentKey = keys.next();

output.append(currentKey + "\t" + map.get(currentKey) + "\n");

}

output.append("\n\n出现不同单词数目:" + map.size() + "\n");

output.append("isEmpty:" + map.isEmpty() + "\n");// 输出map空,表示已遍历结束

return output.toString();// output是StringBuffer,必须在后面显示调用toString();

}

public static void main(String args[]) {

StringTokenPro tt = new StringTokenPro();

tt.setDefaultCloseOperation(EXIT_ON_CLOSE);

tt.setVisible(true);

}

}

测试结果:

java统计每个单词单词出现的次数_统计一篇英文中每个单词出现的次数相关推荐

  1. java 单词出现次数_java 获取一段英文中每个单词出现的次数

    /** *获取一段英文中每个单词出现的次数 */ import java.util.HashMap; import java.util.Iterator; import java.util.Scann ...

  2. 百词斩英语单词小助手(主要实现英语单词学习的功能。用户可对词典文件中的单词进行预览,增删改查。同时还可进行中英、英中测试。本系统还提供了测试成绩的显示功能。)

    struct word //单词的结构体 {char en[MAX_CHAR]; // 英文形式char ch[MAX_CHAR]; //中文形式 } s[MAX_NUM]; //单词数组 int n ...

  3. 将一句英文中每个单词的首字母大写,其余字母小写 ‘hOw aRE yOU‘ -> ‘How Are You‘

    将一句英文中每个单词的首字母大写,其余字母小写 'hOw aRE yOU' -> 'How Are You' var str='hOw aRE yOU'// 将字符串转为数组,按照空格分隔var ...

  4. java统计单词出现次数_java-统计一段句子中各单词出现的次数

    问题:统计一段句子中各单词出现的次数. 思路: 1.使用split方法将文章进行分割,我们这里以空格.逗号和句点为分隔符,然后存到一个字符串数组中. 2.创建一个hashMap集合,key是字符串类型 ...

  5. java统计大串中小串的出现次数_统计大串中小串出现的次数

    /* * 统计大串中小串出现的次数 举例:在字符串" woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavag ...

  6. python字典统计字母出现次数_第三篇 python运用字典统计字符串中字母出现的次数-Go语言中文社区...

    碎碎念 这个内容还是我日常互相种草的好友提供的素材,很基础也很实用,稍微进阶一些就可以用来统计文章中的单词出现的频率了.她在网上找的代码用了库,通过python中的字典可以很简洁的完成.(下图是她在网 ...

  7. python提取英文单词 每行显示一个_使用python对文件中的单词进行提取

    由于需要使用一个纯单词组成的文件,在网上下载到了一个存放单词的文件,但是里面有中文的解释,那就需要做一下提取了. 文本的形式如下: 所见即所得,这个文本是有规律的,每个单词为一行,紧接着下一行便是单词 ...

  8. mysql dp.cal 显示汉子_计算1到N中各个数字出现的次数 --数位DP

    题意:给定一个数n,问从1到n中,0~9这10个数字分别出现了多少次.比如366这个数,3出现了1次,6出现了2次. 题解:<剑指offer>P174:<编程之美>P132 都 ...

  9. java统计每个单词单词出现的次数_(java)统计若干段英文中的单词数量,并统计每个单词出现的次数按降序排序。...

    注1(1)注2 !!!!! 10 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre ...

最新文章

  1. SpringBootH ttpInvoker接口调用
  2. 自定义下拉列表(使用原始的事件监听机制),在搜索框中使用
  3. 区块链 java 开源_详细介绍Java区块链开源代码背后的内容
  4. java中正则全局匹配_JS中正则表达式全局匹配模式/g用法实例
  5. 【2015年第4期】基于大数据技术的P2P网贷平台风险预警模型
  6. 【Matlab学习笔记】保存图片(待续)
  7. java hql 连接查询,java – 如何从HQL表单中的两个连接表查询中选择*?
  8. 日常中的迅捷PDF转换器
  9. 模电笔记1 | 信号的放大与分贝计算
  10. 腾讯云学生服务器9元/月
  11. cpu使用率100%,内存占用不足30%,system进程 pId=4
  12. 相信我,这些web前端技术会让你虎躯一震
  13. 《网络安全等级保护基本要求》(GB/T 22239-2019)标准解读
  14. c语言编程实现今日星期几,计算任何一天是星期几的C语言源代码.
  15. python3 简单爬虫实战|使用selenium来模拟浏览器抓取选股宝网站信息里面的股票
  16. 教育部司长:建议开展琴棋书画等校外培训!
  17. 再次上演兄弟相煎,vivo再次超越OPPO在国内手机市场称王
  18. echarts tree默认展开_Echarts树形图展开和收缩
  19. (wake_lock)后台任务 - 保持设备唤醒状态
  20. 关于TTS SpeechVoiceSpeakFlags几个值的中文意思?

热门文章

  1. 漏洞修复之 bash漏洞远程命令执行
  2. 【linux】inux操作系统常见指令
  3. 直播or短视频,你更倾向于哪个?
  4. 视频 (Video) - 属性 (Properties) - 比特率 (Bitrate)
  5. 2022上海市安全员C证考试模拟100题模拟考试平台操作
  6. 让知识付费系统视频支持M3U8格式播放的方法
  7. unity中音乐播放
  8. Linux服务器启动流程
  9. html两条下划线重叠,解决文字与下划线重叠的问题
  10. 日期选择(年月日,年月)