用户输入一个数字,生成n位验证码。包括大小写、数字
我写到这里卡住了,我是想随机生成三个数,对应case,对应小写大写数字,但是我觉得好麻烦,然后看了一下老师的。就是这么写的
根据一下代码,显示的只有数字。也就是说,在ASCII码转换时出错
我本来以为是字符转换有问题,但是和老师的是一样的。那就只能是 最开始的时候只能访问数字,
就是说 每一位新的验证码都应该对应一个随机数,那么就应该把生成的随机数放入循环
package com.zhang;
import java.util.Random;
import java.util.Scanner;
/*
生成验证码 输入位数,随机产生n位,包括大小写,数字
*/
public class Test2 {
public static void main(String[] args) {
System.out.println("请输入要产生几位验证码:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String rs = check(n);
}
public static String check(int n){
Random r = new Random();
String rs = "";
//System.out.println(a);
for (int i = 1;i <= n;i++){
int a = r.nextInt(3);
switch (a){
case 0:
int num = r.nextInt(9);
rs += num;
break;
case 1:
int lowernum = 97+r.nextInt(26);
char lower = (char) lowernum;
rs += lower;
break;
case 2:
int capitalnum = 64 + r.nextInt(26);
char capital = (char)capitalnum;
rs += capital;
break;
}
}
System.out.println(rs);
return rs;
}
}