Java 生成任意长度的验证码过程解析

 更新时间:2019年10月09日 14:37:52   作者:小龙_T无限  
这篇文章主要介绍了Java 生成任意长度的验证码过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

需求说明

1、要求生成任意长度的验证码

2、验证码要求包含大小写英文字母和数字

实现方式

采用随机数的方式,分别在数字,大小写英文字母里面抽取字符,抽取次数由for循环控制

代码内容

随机的方法及程序入口

package com.work.work3;

/**
 * @auther::9527
 * @Description: 验证码生成器
 * @program: shi_yong
 * @create: 2019-07-30 20:45
 */
public class Method {
  //采用char对照表生成验证码
  public static String verCode1(int num) {
    String code = ""; //设置一个变量,用来接收验证码
    for (int i = 0; i < num; i++) {
      //使用一个布尔变量,判定单个验证码是数字还是英文字母
      boolean choose = ((int) (Math.random() * 2) == 0) ? true : false;
      if (choose) {
        //如果choose为真,则选取数字做单个验证码并连接到code里面
        code += (int) (Math.random() * 10); //在0-9之间选择一个数字做验证码
      } else {
        //如果choose为假,则选取英文字母做单个验证码并连接到code里面
        //用char对照表里面的序号,确认本次英文字母是采用大写还是小写,
        // 65是大写英文字母开头,97是小写英文字母开头
        int temp = ((int) (Math.random() * 2) == 0) ?65:97;
        char ch = (char)((Math.random()*26)+temp);
        code += ch;
      }
    }
    //返回一个字符串
    return code;
  }

  public static String verCode2(int num){
    String code="";
    //采用变量string接收所有0-9,a-z,A-Z的字符
    String string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    //将字符串拆分成字符串数组
    String[] str= string.split("");
    for (int i = 0; i <num ; i++) {
      //在数组里面用下标随机出字符串
      code += str[(int)(Math.random()*str.length)];
    }
    return code;
  }

  public static void main(String[] args) {
    System.out.println("对照表法:"+Method.verCode1(6));
    System.out.println("split分割字符串法:"+Method.verCode2(6));

  }
}

运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JavaMail实现发送邮件功能

    JavaMail实现发送邮件功能

    这篇文章主要为大家详细介绍了JavaMail实现发送邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • JavaWeb核心技术中Session与Cookie浅析

    JavaWeb核心技术中Session与Cookie浅析

    session的工作原理和cookie非常类似,在cookie中存放一个sessionID,真实的数据存放在服务器端,客户端每次发送请求的时候带上sessionID,服务端根据sessionID进行数据的响应
    2023-02-02
  • Java中comparator接口和Comparable接口的比较解析

    Java中comparator接口和Comparable接口的比较解析

    这篇文章主要介绍了Java中comparator接口和Comparable接口的比较解析,Java提供了一个用于比较的接口Comparator和Comparable接口,提供了一个比较的方法,所有实现该接口的类,都动态的实现了该比较方法,需要的朋友可以参考下
    2023-08-08
  • Java基础之spring5新功能学习

    Java基础之spring5新功能学习

    这篇文章主要介绍了Java基础之spring5新功能学习,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Spring-AOP 静态普通方法名匹配切面操作

    Spring-AOP 静态普通方法名匹配切面操作

    这篇文章主要介绍了Spring-AOP 静态普通方法名匹配切面操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java日常练习题,每天进步一点点(30)

    Java日常练习题,每天进步一点点(30)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • Java mysql特殊形式的查询语句详解

    Java mysql特殊形式的查询语句详解

    这篇文章主要介绍了Java mysql特殊形式的查询,包括子查询和联合查询、自身连接查询问题,本文通过sql语句给大家介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Java注解处理器简单实例

    Java注解处理器简单实例

    这篇文章主要介绍了Java注解处理器简单实例,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 如何应对spring框架的HTTP ERROR 400 Bad Request错误返回问题

    如何应对spring框架的HTTP ERROR 400 Bad Request错

    这篇文章主要介绍了如何应对spring框架的HTTP ERROR 400 Bad Request错误返回问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 用java实现冒泡排序算法

    用java实现冒泡排序算法

    两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止
    2013-01-01

最新评论