用Java写出一个程序产生5位验证码,且前四位是字母不限大小写最后一位是数字。
解法一:
import java.util.Random;
public class YanZhengMa {
public static void main(String args[]){
Random r=new Random();
int letter=0,a='A',b='a';
char l;
System.out.println("您的随机验证码为:");
for(int i=0;i<4;i++){
letter=r.nextInt(52);
if(letter<26)
{
l=(char)(letter+a);
}
else
{
l=(char)((letter-26)+b);
}
System.out.print(l);
}
int num=r.nextInt(10);
System.out.print(num);
}
}
解法二:
import java.util.Random;
public class YanZhengMa_n {
public static void main(String args[]){
Random r=new Random();
int letter,b='A';
char letter1;
for(int i=0;i<4;i++){
letter=26;
while(letter>=26&&letter<=31){
letter=r.nextInt(58);
}
letter1=(char)(letter+b);
System.out.println(letter1);
}
int number=r.nextInt(10);
System.out.print(number);
}
}
基本思想
通过题目可知要求产生五位随机数,前四位是字母,A的ASCII码值为65,a的ASCII码的值为97,通过随机数方法产生一个0~52的随机数,前26个数字表示大写字母,后26个字母表示小写字母。然后通过强制转换将ASCII值转换为字母。最后一位的数字仅仅简单运用了随机数方法。
易错点
如何将ASCII码转换为相应字母:强制转换及给例子
int letter=0,a=‘A’,b=‘a’;
l=(char)(letter+a);