Java 生成任意長度的驗證碼過程解析
需求說明
1、要求生成任意長度的驗證碼
2、驗證碼要求包含大小寫英文字母和數(shù)字
實現(xiàn)方式
采用隨機數(shù)的方式,分別在數(shù)字,大小寫英文字母里面抽取字符,抽取次數(shù)由for循環(huán)控制
代碼內(nèi)容
隨機的方法及程序入口
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 = ""; //設(shè)置一個變量,用來接收驗證碼
for (int i = 0; i < num; i++) {
//使用一個布爾變量,判定單個驗證碼是數(shù)字還是英文字母
boolean choose = ((int) (Math.random() * 2) == 0) ? true : false;
if (choose) {
//如果choose為真,則選取數(shù)字做單個驗證碼并連接到code里面
code += (int) (Math.random() * 10); //在0-9之間選擇一個數(shù)字做驗證碼
} else {
//如果choose為假,則選取英文字母做單個驗證碼并連接到code里面
//用char對照表里面的序號,確認(rèn)本次英文字母是采用大寫還是小寫,
// 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";
//將字符串拆分成字符串?dāng)?shù)組
String[] str= string.split("");
for (int i = 0; i <num ; i++) {
//在數(shù)組里面用下標(biāo)隨機出字符串
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));
}
}
運行結(jié)果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaWeb核心技術(shù)中Session與Cookie淺析
session的工作原理和cookie非常類似,在cookie中存放一個sessionID,真實的數(shù)據(jù)存放在服務(wù)器端,客戶端每次發(fā)送請求的時候帶上sessionID,服務(wù)端根據(jù)sessionID進(jìn)行數(shù)據(jù)的響應(yīng)2023-02-02
Java中comparator接口和Comparable接口的比較解析
這篇文章主要介紹了Java中comparator接口和Comparable接口的比較解析,Java提供了一個用于比較的接口Comparator和Comparable接口,提供了一個比較的方法,所有實現(xiàn)該接口的類,都動態(tài)的實現(xiàn)了該比較方法,需要的朋友可以參考下2023-08-08
Java基礎(chǔ)之spring5新功能學(xué)習(xí)
這篇文章主要介紹了Java基礎(chǔ)之spring5新功能學(xué)習(xí),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05
Java日常練習(xí)題,每天進(jìn)步一點點(30)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
如何應(yīng)對spring框架的HTTP ERROR 400 Bad Request錯
這篇文章主要介紹了如何應(yīng)對spring框架的HTTP ERROR 400 Bad Request錯誤返回問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08

