要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。
1.程序设计思想验证码
①定义一个字符串变量来保存随机生成的。
②利用循环产生六位随机数,在产生每一位时将其转换为char类型并写在字符串后面。
③利用对话框显示生成的验证码,并提示用户输入验证码。
④显示用户是否验证成功。
2.程序流程图

3.源程序代码
import java.util.Random;
import javax.swing.JOptionPane; // import class JOptionPane
public class VerificationCode { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String code="";//定义一个新的空字符串
for(int i=1;i<=6;i++)
{
Random random=new Random();
int character=random.nextInt(26)+97;//随机产生97-123之间的数
code=code+(char)character;//将产生的数转化为char类型为小写字母
}
String input=JOptionPane.showInputDialog(code+"\n"+"请输入验证码:");//显示验证码,并提示用户输入验证码
if(input.equals(code))//判断验证码是否正确
{
JOptionPane.showMessageDialog(null,"验证码正确,验证成功!","Results",JOptionPane.PLAIN_MESSAGE );
}
else
{
JOptionPane.showMessageDialog(null,"验证码错误,验证失败!","Results",JOptionPane.PLAIN_MESSAGE );
}
} }
4.结果截图




5.实验总结
本题中的关键是对类型转换的把握,生成随机字符串的方法有很多,本题考查对RandomStr.java以及类型转换的使用。我在判断随机生成的字符串与用户输入的验证码是否一样时出错,我的代码为code==input,则出现无论输入什么验证码都会显示验证成功,后来经过查询,发现是判断时出错,因为在C++中直接判断就行,而在Java中要用到equals函数来判断。第二个错误则是粗心所致,我将input.equals(code)写成了input.equals(input),则出现无论输入什么验证码也都会显示验证成功。
除此之外,程序的一个缺点是只能产生全是小写字母或者全是大写字母,再或者全是数字组成的验证码,不能产生小写字母、大写字母、数字随机结合的验证码。
要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。的更多相关文章
- JAVA 文档注释,类的说明,HTML说明文档的生成
有的时候,我们会写一些类,编译成.class文件,给别人使用,那么,别人不知道这个类有哪些方法,如何调用. 所以我们需要做一个类的说明文档. 可以采用在.java类里面进行注释,通过注释来生成类的说明 ...
- Java实战之01Struts2-03属性封装、类型转换、数据验证
九.封装请求正文到对象中 1.静态参数封装 在struts.xml配置文件中,给动作类注入值.调用的是setter方法. 原因:是由一个staticParams的拦截器完成注入的. 2.动态参数封装: ...
- Java 基础类型转换byte数组, byte数组转换基础类型
Java 基础类型转换byte数组, byte数组转换基础类型 Java类型转换 java类对象转化为byte数组
- java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例
java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍 我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream ou ...
- Java数据类型转换浅析
Java数据类型转换分为两种:自动类型转换和强制类型转换. 数据类型转换的关键是数据类型相应的表数范围大小 1.自动类型转换: 概念:小范围数据类型会自动转化成大范围数据类型 实例: int a=10 ...
- 关于Java String 类型转换时null的问题(转)
关于Java String 类型转换时null的问题 开发中经常遇到从集合类List.Map中取出数据转换为String的问题,这里如果处理不好,经常会遇到空指针异常java.lang.NullPoi ...
- Java的类型转换
Java的类型转换 在适当的时候,我们会想要将一种数据类型自动转换成另一种,比如把int转化成float类型.Java有隐藏式的自动转换,可以自动转换成想要的类型,但是强制的自动转换的话,.需要将希望 ...
- Java注解(二):实战 - 直接使用对象列表生成报表
通过对Java注解(一):介绍,思想及优点学习了解,相信大家对Java注解有一定程度的了解,本篇文章将实战项目中的应用来加深对Java注解的了解. 本实例实现根据指定字段的JavaBean,生成对应列 ...
- JAVA字符串格式化-String.format()的使用 【生成随机数补0操作】
转: JAVA字符串格式化-String.format()的使用 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的s ...
随机推荐
- svn checkout 指定目录(转)
http://www.uqugu.com/blog/article/svn-checkout-specified-forder/ svn有时只想检出指定目录,对于其他的大文件目录则不想检出,如不想检出 ...
- GIAC 2017全球互联网架构大会最新日程
12月22日至23日,高可用架构和msup联合主办的GIAC 全球互联网架构大会将于上海光大会展中心举行.GIAC 全球互联网架构大会是高可用架构技术社区推广的面向架构师.技术负责人及高端技术从业人员 ...
- 体验 PHP under .NET Core
昨天在 The week in .NET 中发现 Scott Hanselman 的这篇博文 Peachpie - Open Source PHP Compiler to .NET and WordP ...
- plsql developer 安装
PLSQL Developer 安装分以下几步: 一.下载Oracle客户端 PLSQL Developer是通过oracle client连上Oracle server的. http://www.o ...
- ArcEngine二次开发,TOCControl控件上使用contextMenuStrip
右键菜单,在二次开发中很实用,以前没用过,最近通过一本书了解到,一直想找这么一个控件来用. 一般的控件,将contextMenuStrip控件拖到所依托的控件上,然后输入自己想要的几个功能. 在所依 ...
- idea+maven+springboot+mybatis+springmvc+shiro
springboot就是把创建项目简单化,省去了以往的配置mybatis.springmvc的繁琐过程. 搭建web应用三个主要功能,请求和响应,数据库交互,权限配置. 一.idea创建项目 (1) ...
- for in 循环
for in循环可以循环遍历数组 关键也可以循环遍历对象!而一般的for循环只能循环遍历数组, 当循环遍历对象时key值代表键值对的键,obj[key]则是对应键的值: 当循环遍历数组时,数组不是 ...
- TZOJ 5640: 数据结构实验:仓库管理
描述 某百货公司仓库中有一批电视机,按其价格严格从低到高的次序,以链表(链表含头结点)的形式存储于计算机中,链表的每个结点表示同样价格的电视机台数.现在又有m台价格为x元的电视机准备入库,请将其加入到 ...
- 陌生的 metaclass(转)
add by zhj:这是我见过的对metaclass解释最清楚的文章了,例子很好,真是一例胜千言 原文:http://wiki.jikexueyuan.com/project/explore-pyt ...
- postgresSQL主从流复制安装
命令行运维: https://blog.csdn.net/zhangzeyuaaa/article/details/77941039 安装流程: 先准备类库: yum -y install readl ...