Если ваш алфавит состоит из 26 символов, то ваши слова соответствуют числам от 1 до 26 ^ 6 - 1. Таким образом, один из подходов:
int val = 1 + new java.util.Random().nextInt(308915774); // [0 to 26^6 - 1)
String word = Integer.toString(val, 26).toUpperCase(); // from [0-9,A-P]
word = word.replace('0', 'Q');
// etc for '1', through '9', where '9' -> Z
Если вы хотите включить 0-9 (36 символов)алфавит), то этот трюк не сработает, потому что 36^6 - 1 > Integer.MAX_VALUE
.Затем я предлагаю вам использовать Random.nextInt()
, чтобы решить, сколько символов будет в вашем слове, а затем сгенерировать ровно столько символов, используя Random.nextInt()
, чтобы сгенерировать случайные индексы в вашем алфавитном массиве.