使用Java随机产生四位字母作为验证码

一、随机产生由四个小写字母构成的验证码

分析:

要想随机产生小写字母,需要用到Math.random(),但是其返回值是double,因此要将返回值强转为char类型。这里就需要查找ASCII码了,通过查找ASCII码可知,小写字母的取值范围是97-122(97+25).因此随机数的产生可写为Math.random()*26+97

要随机产生一个在m-n之间的数,规律为:Math.random()*(n-m+1)+m

从上述分析可知如何生成小写字母的整数范围,再将其强转为char类型,就可以得到一个char类型的数,接下来就可通过循环得到验证码。

方式一、使用数组存储

		int times = 0;
		char[] temp= new char[5];
		
		while(times < 4) {
			char rand = (char) (Math.random()*26+97);
			temp[times] = rand;
			times++;
		}
		System.out.println(temp);

方式二、不换行打印

		int times = 0;
		while(times < 4) {
			char rand = (char) (Math.random()*26+97);
			System.out.print(rand);
			times++;
		}

二、随机产生由四个大写字母构成的验证码

分析:

和小写字母大致思想一致,其中大写字母的ASCII码的范围为65-90

		int i = 1;
		while(i < 5) {
			char rand = (char) (Math.random()*26+65);
			System.out.print(rand);
			i++;
		}
		System.out.println((97+25));

三、随机产生由四个大小写字母构成的验证码

分析:

因为大写字母和小写字母之间有91-96的符号,导致不连续,故需要将其排除掉(即,如果产生了符号,就重新生成,可以考虑使用死循环+break)

		System.out.println();
		int j = 1;
		while(j < 5) {
			int rand = (int) (Math.random()*58+65);
			    while(true) {
					if (rand >= 91 && rand <= 96) {
						rand = (int)(Math.random()*58+65);	
					}
					System.out.print((char)rand);
					break;
			    }
		  j++;
		}

你可能感兴趣的:(Java基础,java)