Java 生成任意長(zhǎng)度的驗(yàn)證碼過程解析
需求說明
1、要求生成任意長(zhǎng)度的驗(yàn)證碼
2、驗(yàn)證碼要求包含大小寫英文字母和數(shù)字
實(shí)現(xiàn)方式
采用隨機(jī)數(shù)的方式,分別在數(shù)字,大小寫英文字母里面抽取字符,抽取次數(shù)由for循環(huán)控制
代碼內(nèi)容
隨機(jī)的方法及程序入口
package com.work.work3; /** * @auther::9527 * @Description: 驗(yàn)證碼生成器 * @program: shi_yong * @create: 2019-07-30 20:45 */ public class Method { //采用char對(duì)照表生成驗(yàn)證碼 public static String verCode1(int num) { String code = ""; //設(shè)置一個(gè)變量,用來接收驗(yàn)證碼 for (int i = 0; i < num; i++) { //使用一個(gè)布爾變量,判定單個(gè)驗(yàn)證碼是數(shù)字還是英文字母 boolean choose = ((int) (Math.random() * 2) == 0) ? true : false; if (choose) { //如果choose為真,則選取數(shù)字做單個(gè)驗(yàn)證碼并連接到code里面 code += (int) (Math.random() * 10); //在0-9之間選擇一個(gè)數(shù)字做驗(yàn)證碼 } else { //如果choose為假,則選取英文字母做單個(gè)驗(yàn)證碼并連接到code里面 //用char對(duì)照表里面的序號(hào),確認(rèn)本次英文字母是采用大寫還是小寫, // 65是大寫英文字母開頭,97是小寫英文字母開頭 int temp = ((int) (Math.random() * 2) == 0) ?65:97; char ch = (char)((Math.random()*26)+temp); code += ch; } } //返回一個(gè)字符串 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)隨機(jī)出字符串 code += str[(int)(Math.random()*str.length)]; } return code; } public static void main(String[] args) { System.out.println("對(duì)照表法:"+Method.verCode1(6)); System.out.println("split分割字符串法:"+Method.verCode2(6)); } }
運(yùn)行結(jié)果
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaMail實(shí)現(xiàn)發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了JavaMail實(shí)現(xiàn)發(fā)送郵件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08JavaWeb核心技術(shù)中Session與Cookie淺析
session的工作原理和cookie非常類似,在cookie中存放一個(gè)sessionID,真實(shí)的數(shù)據(jù)存放在服務(wù)器端,客戶端每次發(fā)送請(qǐng)求的時(shí)候帶上sessionID,服務(wù)端根據(jù)sessionID進(jìn)行數(shù)據(jù)的響應(yīng)2023-02-02Java中comparator接口和Comparable接口的比較解析
這篇文章主要介紹了Java中comparator接口和Comparable接口的比較解析,Java提供了一個(gè)用于比較的接口Comparator和Comparable接口,提供了一個(gè)比較的方法,所有實(shí)現(xiàn)該接口的類,都動(dòng)態(tài)的實(shí)現(xiàn)了該比較方法,需要的朋友可以參考下2023-08-08Java基礎(chǔ)之spring5新功能學(xué)習(xí)
這篇文章主要介紹了Java基礎(chǔ)之spring5新功能學(xué)習(xí),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(30)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07如何應(yīng)對(duì)spring框架的HTTP ERROR 400 Bad Request錯(cuò)
這篇文章主要介紹了如何應(yīng)對(duì)spring框架的HTTP ERROR 400 Bad Request錯(cuò)誤返回問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08