1. 随机产生4位验证码
导入Math包、Random包
用到StringBuilder类、Random类
用到append方法、nextInt方法
思路:
从一个char[]数组中随机挑选出4个字符,尾插到StringBuilder中。
public static void main(String[] args)
{
char[] arr = {'1','d','m','喵','6','h','汪','k'};
StringBuilder sb = new StringBuilder();
//随机产生4个整数index,作为char数组下标
Random random = new Random();
for(int i = 0;i < 4;i++)
{
//随机数的范围(0<=index<=arr.length-1)
//与数组arr下标的范围一致
int index = random.nextInt(arr.length);
//把index下标对应的char存入sb尾部
sb.append(arr[index]);
}
System.out.println("随机产生的4位验证码:"+sb);
}
2. 升级版题目:随机产生3个【不重复的!】字母
导入ArrayList包
用到ArrayList类、Random类
用到contains方法、add方法
从一个包含26字母大小写的char[]数组中,随机挑选出4个字符,尾插到StringBuilder中。
控制3个字符不重复的方法:用 “集合.contains(元素)”来判断该字符是否与集合中曾添加某元素重复。
public static void main(String[] args)
{
System.out.println("3位字母"+get3char());
}
public static ArrayList<Character> get3char()
{
ArrayList<Character> list = new ArrayList<Character>();
//得到一个char[]数组c
String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char[] c = s.toCharArray();
//随机生成3个整数作为下标,获取数组c中的3个字符
//并把字符尾插到list中
Random random = new Random();
for( int i = 0; i < 3; i ++) {
char randomChar = c[random.nextInt(c.length)];
//用 “集合.contains(元素)”来控制集合中字符不重复
//如果list中尚没有该字符,则代表不与list中已有元素重复
if(!list.contains(randomChar))
{
list.add(randomChar);
}
}
return list;
}