代码改变世界

要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。

  默默不语  阅读(891)  评论(0编辑  收藏  举报

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),则出现无论输入什么验证码也都会显示验证成功。

除此之外,程序的一个缺点是只能产生全是小写字母或者全是大写字母,再或者全是数字组成的验证码,不能产生小写字母、大写字母、数字随机结合的验证码。

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示