栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java编写程序获取验证码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java编写程序获取验证码

Java获取验证码 需求:

在登录注册页面中,除了用户名和密码外,通常也会包含验证码。验证码是用来区分用户是计算机还是人,防止恶意破解密码、刷票、灌水等行为。定义方法,获取一个包含4个字符的验证码,每一位字符是随机选择的字母和数字,可包含a-z,A-Z,0-9。

设计思路

查看Random、StringBuilder相关API,完成需求

代码实现1
package com.itheima.APITest.Test02;

import java.util.Random;


public class Demo {
    public static void main(String[] args) {
        //调用验证码方法
        String s = getVerificationCode();
        //输出验证码序列
        System.out.println(s);
    }

    //无参数,有返回值String类型
    public static String getVerificationCode() {
        //创建Random对象
        //public Random​()
        //创建一个新的随机数生成器。
        Random r = new Random();
        //创建StringBuilder对象
        //public StringBuilder​()
        //构造一个没有字符的字符串构建器,初始容量为16个字符。
        StringBuilder sb = new StringBuilder();
        //public int length​()
        //返回长度(字符数)。 
        while (sb.length() < 4) {
            //public int nextInt​(int bound)
            //返回伪随机数,从0(包括)和指定值(排除)之间均匀分布的int值,从该随机数生成器的序列中抽取出来。
            int random = r.nextInt(123);
            //控制随机数的范围,char类型与int类型比较时,使用的时char类型的ascii码进行比较,总之还是int类型
            if ((random > 'A' && random < 'Z') || (random > 'a' && random < 'z') || (random > '0' && random < '9')) {
                //public StringBuilder append​(char c)
                //将char参数的字符串表示附加到此序列。
                //用强制类型转换,将random的int值转成char类型
                sb.append((char) random);
            }
        }
        //public String toString​()
        //返回表示此顺序中的数据的字符串。
        String s = sb.toString();
        //返回一个String类型
        return s;
    }
}
代码实现2
package com.itheima.APITest.Test02;

import java.util.Random;

public class Demo2 {
    public static void main(String[] args) {
        //调用获取验证码的方法
        String s = getVerificationCode();
        //输出验证码
        System.out.println(s);
    }

    //定义获取验证码的方法,返回值String类型,无参数
    public static String getVerificationCode() {
        //创建StringBuilder对象,用于存放所有能获取的字符
        StringBuilder sb = new StringBuilder();
        //创建String空字符串,存放获取到的字符串
        String s = "";
        //循环获取字符A-Z,拼接到StringBuilder对象中
        for (char c = 'A'; c < 'Z'; c++) {
            sb.append(c);
        }
        //循环获取字符a-z,拼接到StringBuilder对象
        for (char c = 'a'; c < 'z'; c++) {
            sb.append(c);
        }
        //循环获取数字0-9,拼接到StringBuilder对象
        for (int i = 0; i <= 9; i++) {
            sb.append(i);
        }
        //创建Random对象,用来获取随机数
        Random r = new Random();
        //循环四次,获取四个字符验证码
        for (int i = 0; i < 4; i++) {
            //随机获取StringBuilder对象的索引
            int index = r.nextInt(sb.length());
            //public char charAt​(int index)
            //返回指定索引处的此序列中的char值。
            //将获取道德char值拼接到String对象中
            s += sb.charAt(index);
        }
        //返回字符串
        return s;
    }
}
效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/721828.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号