随机生成5位大小写字母或者数字

来源:互联网 发布:socket客户端接收数据 编辑:程序博客网 时间:2024/06/05 03:47

随机生成5位大小写字母或者数字

方法一:生成不重复的

public static void main(String[] args) {Random rand = new Random();char[] letters=new char[]{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','r','0','1','2','3','4','5','6','7','8','9'};String str = "";int index;boolean[] flags = new boolean[letters.length];//默认为falsefor(int i=0;i<5;i++){do{index = rand.nextInt(letters.length); }while(flags[index]==true);char c = letters[index];str += c;flags[index]=true;}System.out.println(str);}

方法二:生成重复的,与方法一类似

public static void main(String[] args) {Random rand = new Random();char[] letters=new char[]{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','r','0','1','2','3','4','5','6','7','8','9'};String str = "";int index;boolean[] flags = new boolean[letters.length];//默认为falsefor(int i=0;i<5;i++){do{index = rand.nextInt(letters.length); }while(flags[index]==true);char c = letters[index];str += c;flags[index]=true;}System.out.println(str);}

方法三:生成重复的(建议选用此方法)

public static void main(String[] args) {String str = "";Random rand = new Random();for(int i=0;i<5;i++){int num = rand.nextInt(3);switch(num){case 0:char c1 = (char)(rand.nextInt(26)+'a');//生成随机小写字母 str += c1;break;case 1:char c2 = (char)(rand.nextInt(26)+'A');//生成随机大写字母 str += c2;break;case 2:str += rand.nextInt(10);//生成随机数字}}System.out.println("生成的5个随机验证码是:"+str);}




0 0
原创粉丝点击