Как сгенерировать случайные символы в Java

Генерации случайных символов в Java не существует, но есть несколько способов сделать это. Это сгенерировать случайное число используя java.util.Random.nextInt(), а затем преобразовать целое число в символ в соответствии с его кодом ASCII.

Сгенерировать символ между a-z

Код ASCII первого буквенного символа в нижнем регистре равен 65 ( a) и последний 97+26=122 (z). Сгенерированное число находится в диапазоне [97, 122] или в диапазоне [0,26] + 97.

Random rand = new Random(); 
char c = (char)(rand.nextInt(26) + 97);
System.out.println(c);
Мы можем заменить ASCII-код 97 на 'a':
(char)(rand.nextInt(26) + 'a'); 

Сгенерировать строку

Чтобы получить n символов, приведенный выше код должен быть заключен в for.
Random rand = new Random(); 
String str=""; 
for(int i = 0 ; i < 20 ; i++){
char c = (char)(rand.nextInt(26) + 97);
str += c;
System.out.print(c+" ");
}
f s e u k t m d a e b i m u y a y u s n 

Generate alphanumeric from a set

В этом примере Мы сгенерируем буквенно-цифровые символы из набора определенных символов. Давайте сделаем так:
  • Создайте строку с нужным набором
  • Получить длину строки
  • Call rand.nextInt который возвращает позицию k от 0 до length-1
  • alphabet.charAt(k) - случайность алфавита
Random rand = new Random(); 
Строка alphabet="abcd1235";
int длина = alphabet.lentgh();
for(int i = 0; i < 30; i++) {
int k = rand.nextInt(length);
System.out.print(alphabet.charAt(k)+" ");
}
b 1 3 1 d b b b 2 5 5 b a c 5 1 2 b 5 2 c b a 3 3 5 3 d b c 1