模仿驗證碼的驗證程序
import java.util.Scanner;
// 創建驗證碼類
public class Captcha {
//方法一:隨機生成0--9的亂數
public int math1() {
return (int) (Math.random() * 10);
}
//方法二:隨機生成0--9的亂數
public int math2() {
return (int) (Math.random() * 10);
}
//方法三:隨機生成97——122的亂數 并且轉化成char型別
//Ascall碼對應(a(97)——z(122))
public char word1() {
return (char) ((Math.random() * (122 - 97 + 1)) + 97);
}
//方法三:隨機生成65——97的亂數 并且轉化成char型別
//Ascall碼對應(A(65)——Z(97))
public char word2() {
return (char) ((Math.random() * (90 - 65 + 1)) + 65);
}
/**
*創建新的方法進行隨機生成
*
*/
public void random() {
int a = 0;
//定義一個字串用來拼接隨機生成的驗證碼
String code = "驗證碼:";
//回圈四次,每次隨機取一個值,共取四個值
while (a < 4) {
a++;
int i = (int) (Math.random() * (4 - 1 + 1) + 1);
switch (i) {
case 1:
int q = math1();
String j = String.valueOf(q);
code += j;
break;
case 2:
int m = math2();
String n = String.valueOf(m);
code += n;
break;
case 3:
char k = word1();
String l = String.valueOf(k);
code += l;
break;
case 4:
char x = word2();
String y = String.valueOf(x);
code += y;
break;
}
}
//列印輸出生成的驗證碼
System.out.println(code);
//讓用戶輸入驗證碼
Scanner sc = new Scanner(System.in);
System.out.println("請輸入驗證碼(區分大小寫):");
//定義新的字串v接受用戶輸入的驗證碼
String v = sc.next();
/**
* 反復判斷
* 如果輸入的驗證碼長度不為4或者不符合隨機生成的驗證碼,則提示重新輸入
*/
while(!code.contains(v)|| v.length()!=4 ) {
System.out.println("驗證失敗");
System.out.println("請重新輸入");
v = sc.next();
}
System.out.println("驗證成功");
}
public static void main(String[] args) {
Captcha r = new Captcha();
r.random();
}
}
輸出結果:

問題蠻多,請多多請教!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/213031.html
標籤:其他
