思路:使用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码表: