思路:生成验证码的思路与上篇文章一样,只是用的是if/else来判断的,不太会使用switch语句的也可以使用if/else。同时后边添加了,根据生成的来输入验证码校验的过程:如果验证码输入错误,要重新生成,再输入,直到输入正确结束。不知道循环次数,所以要用一个while死循环。
注意,重新生成验证码之前,要把code初始化为空字符串。
import java.util.Random; import java.util.Scanner; //随机生成5位验证码,大写字母、小写字母、数字都有可能 public class VerificationCode { public static void main(String[] args) { Random ran=new Random(); String code = ""; //当生成0时,随机生成数字,当生成1时,随机小写字母,当生成2时,随机大写字母 while(true) { for (int i = 0; i < 5; i++) { int data = ran.nextInt(0, 3); if (data == 2) { char ch = (char) ran.nextInt(65, 91); code = code + ch; } else if (data == 1) { char ch = (char) ran.nextInt(97, 123); code = code + ch; } else { int a = ran.nextInt(0, 10); code = code + a; } } System.out.println("生成的验证码为:" + code); Scanner sc = new Scanner(System.in); System.out.println("请输入验证码"); String code2 = sc.next(); if (code2.equalsIgnoreCase(code)) { System.out.println("输入正确"); break;//死循环终止的条件 } else { System.out.println("输入有误,请重新输入!"); code="";//将code初始化为空数组很重要,否则验证码会不断叠加之前生成过的 } } } }