通过Math.random函数生成所需的字符所有序列,通过判断当前字符是否属于大小写、数字,符合者加入数组内,直到数组存储N位为止,最后把当前数组转为字符串返回调用处。
1 /** 2 * 随机生成由数字、字母组成的N位验证码 3 * 4 * @return 返回一个字符串 5 */ 6 public static String getCode(int n) { 7 char arr[] = new char[n]; 8 int i = 0; 9 while (i < n) { 10 char ch = (char) (int) (Math.random() * 124); 11 if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z' || ch >= '0' && ch <= '9') { 12 arr[i++] = ch; 13 } 14 } 15 //将数组转为字符串 16 return new String(arr); 17 } 18 }
1 public static void main(String[] args) { 2 String str = getCode(4); 3 System.out.println(str); 4 }
运行效果如下: