【Java例题】8.2 手工编写字符串统计的可视化程序
2. 手工编写字符串统计的可视化程序。 一个Frame窗体容器,布局为null,两个TextField组件,一个Button组件。 Button组件上添加ActionEvent事件监听器ActionListener和函数actionPerformed, 其中,第一个TextField组件进行输入,第二个TextField组件用于输出, 并完成输入的字符串中字母、数字、汉字及其它字符的数量统计, 统计结果显示在第二个TextField组件中。 注意:还需要对Frame窗体添加WindowEvent事件监听器WindowAdapter和 函数windowClosing,退出程序。
package chapter8; import java.awt.Button;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; public class demo2 {
public static void main(String[] args) {
Frame f1=new Frame("字符串统计");
f1.setLayout(null);
int f1width=800;
int f1height=600;
f1.setBounds(0, 0, f1width, f1height);
TextField tf1=new TextField();
tf1.setBounds(50,50,f1width-100,f1height/3);
TextField tf2=new TextField();
tf2.setBounds(50, f1height/3+80, f1width-100, f1height/3);
Button bt1=new Button("统计");
bt1.setBounds(f1width/2-50, f1height/3*2+80, 100,100);
f1.add(tf1);
f1.add(tf2);
f1.add(bt1);
f1.setVisible(true);
MyWindowAdapter mwa=new MyWindowAdapter();
f1.addWindowListener(mwa);
MyActionListener mal=new MyActionListener(tf1,tf2);
bt1.addActionListener(mal);
}
static class MyActionListener implements ActionListener{
TextField tf1;
TextField tf2; MyActionListener(TextField tf1,TextField tf2){
this.tf1=tf1;
this.tf2=tf2;
} @Override
public void actionPerformed(ActionEvent e) {
String str=tf1.getText();
int da=0;
int xiao=0;
int shu=0;
int han=0;
int els=0;
for(int i=0;i<str.length();i++) {
char c=str.charAt(i);
if(c>='A'&&c<='Z') {
da=da+1;
}else if(c>='a'&&c<='z'){
xiao=xiao+1;
}else if(c>='0'&&c<='9') {
shu=shu+1;
}else if(c>=0x4E00&&c<=0x9FA5) {
han=han+1;
}else {
els=els+1;
}
}
tf2.setText("大写:"+da+" 小写:"+xiao+" 数字:"+shu+" 汉字:"+han+" 其他"+els);
}
}
static class MyWindowAdapter extends WindowAdapter{
public void windowClosing(WindowEvent e) {
System.exit(-1);
}
}
}
【Java例题】8.2 手工编写字符串统计的可视化程序的更多相关文章
- Java例题_38 自定义函数求字符串长度
1 /*38 [程序 38 求字符串长度] 2 题目:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度. 3 */ 4 5 /*分析 6 * 1.从键盘得到一个字符串 7 ...
- 【Java例题】8.1手工编写加法器的可视化程序
1. 手工编写加法器的可视化程序. 一个Frame窗体容器,布局为null,三个TextField组件,一个Button组件. Button组件上添加ActionEvent事件监听器ActionLis ...
- Servlet基础-手工编写第一个servlet
[手工编写第一个servlet] [步骤] 1.继承HttpServlet 2.重写doGet()或者doPost()方法 //这个doGet或者doPost方法取决用户提交的方式 3.在web.x ...
- struts_19_对Action中所有方法、某一个方法进行输入校验(手工编写代码实现输入校验)
对所有方法进行校验1.通过手工编写代码的形式实现 需求:用户名:不能为空手机号:不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字 第01步:导包 第02步:配置web.xml <? ...
- struts2视频学习笔记 19-20(手工编写代码实现所有方法和指定方法校验)
课时19 对Action中所有方法进行输入校验 1.手工编写代码实现对action中所有方法输入校验 通过重写validate() 方法实现, validate()方法会校验action中所有与exe ...
- HDOJ2017字符串统计
字符串统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- Jmeter脚本录制方法(二)——手工编写脚本(jmeter与fiddler结合使用)
jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...
- 纯手工编写的PE可执行程序
[文章标题]: 纯手工编写的PE可执行程序[文章作者]: Kinney[下载地址]: 自己搜索下载[使用工具]: C32[操作平台]: win 7[作者声明]: 只是感兴趣,没有其他目的.失误之处敬请 ...
- Java入门篇(五)——字符串/String类
前面在举例时有出现过String的例子,当时肯定有一部分朋友不知道这个是做什么用的.其实String类是Java中一个比较特殊的类,字符串即String类,它不是Java的基本数据类型之一,但可以像基 ...
随机推荐
- Linux下无法执行tree命令问题
Linux下不能使用tree命令,是因为没有安装命令, 执行下面代码就行了 yum install tree -y
- Linux嵌入式kgdb调试环境搭建
======================= 我的环境 ==========================PC 端: win7 + vmware-15 ubuntu16.04开发板:Freesca ...
- scrapy基础知识之 RedisCrawlSpider:
这个RedisCrawlSpider类爬虫继承了RedisCrawlSpider,能够支持分布式的抓取.因为采用的是crawlSpider,所以需要遵守Rule规则,以及callback不能写pars ...
- Appium+python自动化(十九)- 猴哥失散多年的混血弟弟还是妹妹- Monkey(猴子)参数(超详解)
简介 前边几篇介绍了Monkey以及Monkey的事件,今天就给小伙伴们介绍和分享一下Monkey的参数. 首先我们看一下这幅图来大致了解一下: 1.Monkey 命令 基本参数介绍 -p <允 ...
- Docker学习第二天
CentOS 系列安装 Docker Docker 支持 CentOS6 及以后的版本. CentOS6 对于 CentOS6,可以使用 EPEL 库安装 Docker,命令如下 [root@MSJT ...
- java将复数字符串虚部实部分离,并实现加减运算
java字符串构造复数 将字符串分解为复数的实部和虚部 定义一个复数类,数据成员有实部和虚部,根据传参不同构造方法重载,并定义复数的加减方法,以及toString方法.有难度的便是用字符串构造复数了, ...
- Centos6.5安装Redis3.2.8
1 - Redis安装 redis安装 在网上一搜一大把,但是还是在这里想要能够统一吧,所以这个安装步骤是在Centos6.5 Minimal 上安装redis3.4.8,本次安装是在root 用户下 ...
- stack用法,queue用法,
stack stack 模板类的定义在头文件中. stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要 的,在不指定容器类型时,默认的容器类型为deque. 定义st ...
- Flink实战(七) - Time & Windows编程
0 相关源码 掌握Flink中三种常用的Time处理方式,掌握Flink中滚动窗口以及滑动窗口的使用,了解Flink中的watermark. Flink 在流处理工程中支持不同的时间概念. 1 处理时 ...
- 使用Kubeadm创建k8s集群之部署规划(三十)
前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...