Java 验证码简单使用例子
解题思路
2、先将可选择的字符都放到一个StringBuilder对象中。
3、怎样随机获取其中的四个字符呢?如果能随机获取一个,再获取四次,就可以了。那么怎样随机获取一个呢?
字符串中的字符是有索引的,如果可以随机获取到一个索引,就相当于随机获取到了该索引上的字符。
具体步骤
2.1、定义循环从a-z,使用StringBuilder的append方法依次添加所有小写字母
2.2、定义循环从A-Z,使用StringBuilder的append方法依次添加所有大写字母
2.3、定义循环从0-9,使用StringBuilder的append方法依次添加所有数字字符
3、创建Random对象。定义一个空字符串用于保存验证码。
4、定义一个执行4次的循环,用于获取4个字符。
4.1、在循环中,使用Random的nextInt方法,随机获取一个从索引0(包含)到字符串的长度(不包含)的索引。
4.2、使用StringBuilder的charAt方法,获取该索引上的字符,将其拼接到验证码字符串中。
import java.util.Random; /* 验证码: 常用API random,string,stringBuilder */ public class YanZhengMa { public static void main(String[] args) { //创建字符串对象,用来接受方法的返回值 String code = getRandomCode();//()返回值 //打印输出 System.out.println("验证码:"); System.out.println(code); } //创建getRandomCode方法用于产生随机验证码 private static String getRandomCode() { //创建字符序列对象 StringBuilder stringBuilder = new StringBuilder(); //循环遍历 for (char ch = \'a\'; ch <= \'z\'; ch++) { //产生小写字母字符 stringBuilder.append(ch); } for (char ch = \'A\'; ch <= \'Z\'; ch++) { //产生大写字母字符 stringBuilder.append(ch); } for (char ch = \'0\'; ch <= \'9\'; ch++) { //产生数字字符 stringBuilder.append(ch); } //创建随机数对象 Random random = new Random(); //定义字符串对象,定义一个空字符串用于保存验证码 String code = ""; //循环遍历 for (int i = 0; i < 4; i++) { //使用Random的nextInt方法,随机获取一个从索引0(包含)到字符串的长度(不包含)的索引。 int index = random.nextInt(stringBuilder.length()); //获取该索引上的字符,将其拼接到验证码字符串中。 code = code + stringBuilder.charAt(index); } //返回值 return code; } }
键盘输入验证码比对 :
键盘输入Scanner
与字符串进行比较,忽略大小写
equalsIgnoreCase
-
如果两个字符串的长度相同,并且两个字符串中的相应字符等于忽略大小写,则两个字符串被认为是相等的。
判断需要一直到输入正确为止,所以需要使用循环。使用while循环
import java.util.Random; import java.util.Scanner; /* 验证码: 常用API random,string,stringBuilder */ public class YanZhengMa { public static void main(String[] args) { //创建键盘输入对象 Scanner scanner = new Scanner(System.in); //循环判断 while (true) { //创建字符串对象,用来接受方法的返回值 String code = getRandomCode();//()返回值 //打印输出 System.out.println("验证码:" + code); System.out.println("请输入验证码"); //记录输入字符,字符串类型用nextLine String hhhh = scanner.nextLine(); //判断equalsIgnoreCase方法,忽略大小写 if (code.equalsIgnoreCase(hhhh)) { System.out.println("输入正确"); break; } else { System.out.println("输入错误,请重新输入"); } } } //创建getRandomCode方法用于产生随机验证码 private static String getRandomCode() { //创建字符序列对象 StringBuilder stringBuilder = new StringBuilder(); //循环遍历 for (char ch = \'a\'; ch <= \'z\'; ch++) { //产生小写字母字符 stringBuilder.append(ch); } for (char ch = \'A\'; ch <= \'Z\'; ch++) { //产生大写字母字符 stringBuilder.append(ch); } for (char ch = \'0\'; ch <= \'9\'; ch++) { //产生数字字符 stringBuilder.append(ch); } //创建随机数对象 Random random = new Random(); //定义字符串对象,定义一个空字符串用于保存验证码 String code = ""; //循环遍历 for (int i = 0; i < 4; i++) { //使用Random的nextInt方法,随机获取一个从索引0(包含)到字符串的长度(不包含)的索引。 int index = random.nextInt(stringBuilder.length()); //获取该索引上的字符,将其拼接到验证码字符串中。 code = code + stringBuilder.charAt(index); } //返回值 return code; } }