随机生成长度为len的密码,且包括大写、小写英文字母和数字
2016-08-11 16:19
543 查看
一道华三面试题,随机生成长度为len的密码,且包括大写、小写英文字母和数字,主要Random类的使用,random.nextInt(len)表示生成[0,len)整数。具体实现见下面代码,已经很详细了。
package TestProject; import java.util.Random; import java.util.Scanner; /** * 随机生成长度为len的密码,且包括大写、小写英文字母和数字 * @author xuhui */ public class Main { static char[] bigNum = new char[26]; static char[] smallNum = new char[26]; static int[] num = new int[10]; public static void main(String[] args){ Scanner scanner = new Scanner(System.in);//控制台输入 int len = scanner.nextInt();//输入密码长度,保证大于2 String str = "";//密码 init(); Random random = new Random(); //需要先随机生成len长度中,大写字母的个数,小写字母的个数以及数字的个数,且保证每个个数都不能为0 int big_len = random.nextInt(len-2)+1;//random.nextInt(len)表示生成[0,len)整数,表示生成[1,len-1)整数; int small_len = random.nextInt(len-big_len-1)+1; int num_len = len-big_len-small_len; //每一位生成对应的密码 for(int i=0;i<big_len;i++){ str += bigNum[random.nextInt(26)]; } for(int i=0;i<small_len;i++){ str += smallNum[random.nextInt(26)]; } for(int i=0;i<num_len;i++){ str += num[random.nextInt(10)]; } System.out.print(str);//只是生成前面是大写字母-小写字母-数字这样的顺序 } public static void init(){ for(int i=65;i<=90;i++){//生成大写字母表,对照ASIC表 bigNum[i-65]=(char) i; } for(int i=97;i<=122;i++){//生成小写字母表 smallNum[i-97]=(char) i; } for(int i=0;i<=9;i++){//生成数字表 num[i]=i; } } }
相关文章推荐
- 随机生成长度为len的密码,且包括大写、小写英文字母和数字
- Java随机密码生成器,Java随机生成长度不少于6的指定长度的密码,且这个字符串必须包含大小写字母、数字和特殊字符,四种的任意三种
- Java随机生成长度不少于6的指定长度的密码,且这个字符串必须包含大小写字母、数字和特殊字符,四种的任意三种
- 设计一个函数,根据指定长度生成对应的验证码(由数字和大小写英文字母构成的随机字符串)
- PHP生成随机字符串,必须包含三项 大写小写数字
- Java指定长度随机生成的字符串,且这个字符串必须包含大小写字母和数字
- 随机生成一个32位的字符串(包括字母数字)
- JAVA生成8位随机字符串,数字+英文字母
- Java指定长度随机生成的字符串,且这个字符串必须包含大小写字母和数字
- java生成随机数字和字母组合(自定义长度)
- 随机生成指定长度的数字+字符的密码
- 返回8位小写字母数字混合随机密码
- 随机生成N个由数字和小写字母组成的字符窜
- *自创*可变长度随机数字/字母的生成小结(针对文件上传及验证码)
- php随机生成指定长度的字符串 可以固定数字 字母 混合
- 密码输入,用***代替,可删除***,验证码的随机生成,包括大写字母,小写字母,数字.
- javase写一个随机生成验证码,有大写,小写,数字组成的
- 随机生成字母数字验证码,可定义验证码的长度
- 随机生成字母数字验证码,可定义验证码的长度