Подтвердить что ты не робот

В Java, как вы произвольно выбираете букву (a-z)?

Если я хочу случайным образом выбрать букву между a и z, я предполагаю, что мне нужно использовать класс Random:

Random rand = new Random();

Но поскольку это только порождает числа, что мне нужно сделать, чтобы применить это к буквам?

4b9b3361

Ответ 1

Random r = new Random();
char c = (char) (r.nextInt(26) + 'a');

Ответ 2

Буквы, или, точнее, символы, являются числами (от 0 до 255 в расширенном ascii, от 0 до 127 в нераспространенном). Например, в ASCII "A" (цитата означает, что символ, в отличие от строки) равен 65. Таким образом, 1 + "A" даст вам 66 - "B". Таким образом, вы можете взять случайное число от 0 до 26, добавить его к символу "a", и вот вы: случайная буква.

Вы также можете сделать это со строкой, набрав "abcdefghijklmnopqrstuvwxyz" и занимая случайную позицию в этой цепочке, но решение Barker более элегантно.

Ответ 3

изменить версию @Michael Barker

    Random r = new Random();
    int c = r.nextInt(26) + (byte)'a';
    System.out.println((char)c);

Ответ 4

char randomLetter = (char) ('a' + Math.random() * ('z'-'a' + 1));

Ответ 5

import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
...
randomAlphabetic(1).toLowerCase()

это дает вам строку с одиночным символом

Ответ 6

используйте значение ascii букв для генерации случайного числа.

Ответ 7

Random r = new Random();
char symbel = (char)(r.nextInt(26) + 'a');
if(symbel>='a' && symbel <= 'z') {
    System.out.println("Small Letter" + symbel);
} else {
    System.out.println("Not a letter" + symbel);
}

Ответ 8

Чтобы случайно выбрать букву из (a-z), я бы сделал следующее:

Random rand = new Random();
...
char c = rand.nextInt(26) + 'a';

Так как Random.nextInt() генерирует значение от 0 до 25, вам нужно добавить только смещение 'a' для создания строчных букв.