Java基础String类-验证码部分功能

简介: Java基础String类-验证码部分功能

在登录注册页面中,除了用户名和密码外,通常也会包含验证码。

验证码是用来区分用户是计算机还是人,防止恶意破解密码、刷票、灌水等行为。

在判断验证码时一般不区分大小写。

请编写程序模拟验证码的判断过程,如果输入正确,给出提示,结束程序。

如果输入错误,给出提示,验证码刷新,重新输入,直至正确为止。


(1)生成一个验证码给用户看,验证码4位的验证码,每一位都有可能是小写字母、大写字母、数字这三种情况

tyH2 gh5D jxB5 hG9H


(2)用户输入一个验证码


(3)将用户输入的验证码和你产生的验证码进行比对


(4)比对通过:允许登录

比对不通过:重新刷新验证码,再让用户输入,直到输入成功为止


忽略大小写 忽略前后中间空格


示例代码:


public class HomeworkTest02 {
    public static void main(String[] args) {
        //1、生成一个验证码给用户看
        String checkCode = getCheckCode();
        System.out.println("验证码为:" + checkCode);
        //2、用户输入一个验证码
        Scanner s = new Scanner(System.in);
        System.out.println("请输入验证码:");
        //3、用户输入验证码进行比对
        while(true) {
            String userCheckCode = s.nextLine();//应对用户输入空格
            userCheckCode = userCheckCode.replaceAll(" ", "");//把用户输入的空格替换成空字符串
            //4、比对通过允许登录
            if (userCheckCode.equalsIgnoreCase(checkCode)) {
                System.out.println("登陆成功!");
                break;
            } else {
                System.out.println("验证码错误,请重新输入!");
                checkCode = getCheckCode();
                System.out.println("验证码为:" + checkCode);
            }
        }
    }
    public static String getCheckCode(){
        //随机生成数字
        String str = "";
       for(char c='A';c<='Z';c++){
         str += c;
       }
       for(char c='a';c<='z';c++){
           str += c;
       }
       for(char c='0';c<='9';c++){
           str += c;
       }
        //System.out.println(str);
       //生成四个随机数
        Random random = new Random();
        String checkCode = "";
        //循环四次,得到四个随机数
        for(int i=0;i<4;i++){
            int index = random.nextInt(str.length());//拿到随机数下标,然后进行随机数字符串拼接
            char c = str.charAt(index);
            checkCode += c;
        }
        return checkCode;
        }
    }


运行结果:


0a2653c851af460fa595bd959398a8f1.png

相关文章
|
3天前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:输入与输出:Scanner与System类
你是否也经历过这些崩溃瞬间?三天教程连`i++`和`++i`都说不清,面试时`a==b`与`equals()`区别大脑空白,代码总是莫名报NPE。这个系列就是为你打造的Java「速效救心丸」!每天1分钟,地铁通勤、午休间隙即可学习。直击高频考点和实际开发中的“坑位”,拒绝冗长概念,每篇都有可运行代码示例。涵盖输入输出基础、猜数字游戏、企业编码规范、性能优化技巧、隐藏技能等。助你快速掌握Java核心知识,提升编程能力。点赞、收藏、转发,助力更多小伙伴一起成长!
31 19
|
4天前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
36 11
|
9天前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、&quot;+&quot;操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
|
9天前
|
存储 Java 编译器
课时11:综合实战:简单Java类
本次分享的主题是综合实战:简单 Java 类。主要分为两个部分: 1.简单 Java 类的含义 2.简单 Java 类的开发
|
10天前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
34 5
|
9天前
|
存储 JavaScript Java
课时44:String类对象两种实例化方式比较
本次课程的主要讨论了两种处理模式在Java程序中的应用,直接赋值和构造方法实例化。此外,还讨论了字符串池的概念,指出在Java程序的底层,DOM提供了专门的字符串池,用于存储和查找字符串。 1.直接赋值的对象化模式 2.字符串池的概念 3.构造方法实例化
|
9天前
|
Oracle Java 关系型数据库
课时37:综合实战:数据表与简单Java类映射转换
今天我分享的是数据表与简单 Java 类映射转换,主要分为以下四部分。 1. 映射关系基础 2. 映射步骤方法 3. 项目对象配置 4. 数据获取与调试
|
1月前
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
140 5
|
7月前
|
存储 NoSQL 数据库
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
这篇文章讲述了在分布式微服务系统中添加用户注册和登录功能的过程,重点介绍了用户注册时通过远程服务调用第三方服务获取短信验证码、使用Redis进行验证码校验、对密码进行MD5加密后存储到数据库,以及用户登录时的远程服务调用和密码匹配校验的实现细节。
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
|
5月前
|
C#
C# 图形验证码实现登录校验代码
C# 图形验证码实现登录校验代码
168 2