Java 生成任意長度的驗證碼過程解析
阿新 • • 發佈:2020-11-18
需求說明
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)); } }
執行結果
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援碼農教程。