思路:使用assic码表,三个范围:数字(48-57),大写字母(65-90),小写字母(97-122)
代码:
import java.util.Random;
/**
* 随机字符串工具
*
* @author volitation
*
*/
public class RandomString {
/**
* 获取指定长度随机字符串
*
* @param length
* @return
*/
public static String getRandomString(int length) {
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
int number = random.nextInt(3);
long result = 0;
switch (number) {
case 0:
result = Math.round(Math.random() * 25 + 65);
sb.append(String.valueOf((char) result));
break;
case 1:
result = Math.round(Math.random() * 25 + 97);
sb.append(String.valueOf((char) result));
break;
case 2:
sb.append(String.valueOf(new Random().nextInt(10)));
break;
}
}
return sb.toString();
}
/**
* 测试验证
*
* @param args
*/
public static void main(String[] args) {
System.out.println(RandomString.getRandomString(5));
System.out.println(RandomString.getRandomString(10));
System.out.println(RandomString.getRandomString(15));
}
}
测试:
NVadc
8C1UH1Y0hS
dfiXZMR22pv422I
ASCII码表: