gpt4 book ai didi

java - 如何使用随机类生成 3 个单词

转载 作者:行者123 更新时间:2023-12-01 22:21:38 28 4
gpt4 key购买 nike

我得到了一个讲述故事的多数组(基于随机选择的页面、段落和行号)。我需要生成一个包含从数组中随机取出的 3 个单词的密码。创建密码必须遵守规则(例如:密码长度必须为 10 个字符,不能重复相同的单词);

这是针对 Java 的。 (步骤 1)密码必须由 3 个单词组成(步骤 2)随机选择页面、段落和行号,并且必须使用 random 类使用 nextInt() 生成随机数。 (步骤 3)使用 split() 来分隔随机字符串中的每个单词。 (第 4 步)确保在第 3 步中从数组中选择一个随机单词。(第 5 步)为密码创建限制。

我为限制创建了一个 if-else 语句。如果不遵守规则,程序必须始终返回到(步骤 2)

 import java.util.Random;

public class passGen {

public static void main(String[] args) {

Random r=new Random();

int pageNum = r.nextInt(story.length);
int paraNum = r.nextInt(story.length);
int lineNum = r.nextInt(story.length);

System.out.print("Password = ");

for (int i = 0; i<3; i++) {

String sentence = story[pageNum][paraNum][lineNum]; // story is the array given
String[] string = sentence.split(" ");
int index = new Random().nextInt(string.length);
String randomWord = string[index];

if (randomWord.equals("a") || randomWord.contains("\n")) {
}
else
System.out.print(randomWord);

}
}
}

假设随机生成器从数组中选择一个随机句子:story[0][1][5] 给出“男孩正在骑自行车\n”。使用 split(),然后根据索引随机选择单词,它会选择随机单词“bicycle\n”。我制定了一个规则,如果它选择一个带有换行符('\n')的单词,它必须返回到再次生成随机数的步骤,并给我一个新数组并为我找到一个新的随机单词,直到它找到我一个没有\n 的单词。例如,假设 Story[0][1][6] 是“他很开心。”

我希望输出始终打印一个由 3 个随机单词组合而成的密码。

         password =  boyfun.having   // fun. is considered as one word with the period.

但有些情况下,当它失败时,它只打印出通过限制的单词('\n')。有时会打印1个字,或2个字,或者运行程序时会出错。

password = ridingfun

password = boy

Password = Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Assign3Q1.main(passGen.java:123)

// line 123 happens is the String sentence = story[pageNum][paraNum][lineNum];

最佳答案

不能 100% 确定您的意思,但我很确定您最终会使用随机数生成器遇到出界。

如果您的故事长度为 10,则 nextInt 可以选择 10,因为它包含您传递给它的 int。因此,如果您最终得到 10,然后执行 Story[10],您将得到越界,因为索引从 0 开始。

我建议

r.nextInt(story.length - 1)

关于java - 如何使用随机类生成 3 个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58585454/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com