在Java中生成随机单词?

2022-09-03 16:40:54

我编写了一个程序,可以对单词进行排序并确定任何字谜。我想生成一个随机字符串数组,以便我可以测试方法的运行时。

public static String[] generateRandomWords(int numberOfWords){
String[] randomStrings = new String[numberOfWords];
Random random = Random();
    return null;
}

(方法存根)

我只想要长度为1-10的小写单词。我读到一些关于生成随机数,然后投射到char或其他东西的东西,但我并不完全理解。如果有人可以向我展示如何生成随机单词,那么我应该能够轻松地使用for循环将单词插入数组中。谢谢!


答案 1

您需要实际的英语单词,还是只需要包含字母a-z的随机字符串?

如果你需要实际的英语单词,唯一的方法是使用字典,并从中随机选择单词。

如果你不需要英语单词,那么像这样的东西就可以了:

public static String[] generateRandomWords(int numberOfWords)
{
    String[] randomStrings = new String[numberOfWords];
    Random random = new Random();
    for(int i = 0; i < numberOfWords; i++)
    {
        char[] word = new char[random.nextInt(8)+3]; // words of length 3 through 10. (1 and 2 letter words are boring.)
        for(int j = 0; j < word.length; j++)
        {
            word[j] = (char)('a' + random.nextInt(26));
        }
        randomStrings[i] = new String(word);
    }
    return randomStrings;
}

答案 2

RandomStringUtils from commons-lang