![](/img/trans.png)
[英]How to randomize the entries in a List so the user sees a different DailyPrayer each time?
[英]How to randomize an array of a String so it is different every time though the loop
所以我正在创建一个描述生成器,并将文本文件拆分为“:”。 因此,如果文本文件有“dog:fish:cat:bird”,我的代码会将其拆分为“:”并随机选择一个。 但是,当我打印出结束结果时,输出完全相同。 它将随机选择数组中的单词,但如果我说它生成它4次,那将是4次相同的事情。 那么我的逻辑错误在于如何解决这个问题呢? 我想要它打印4个随机不同的东西。 我的代码如下:
公共类生成器{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Random r = new Random();
System.out.print("Enter a file name: ");
String fName = scanner.nextLine();
File infle = new File(fName);
Scanner read = new Scanner(infle);
System.out.print("Enter number to make: ");
int things = scanner.nextInt();
System.out.println();
System.out.println("Here are " + things + " things: ");
System.out.println();
//gets random animal
String animal = read.nextLine();
String[]anm1 = animal.split(":");
int rnd_Animal = r.nextInt(anm1.length);
String rndAnimal = (anm1[rnd_Animal]);
//gets random adjective
String adj = read.next();
String []adj1 = adj.split(":");
int rndAdj = r.nextInt(adj1.length);
String randomAdj = (adj1[rndAdj]);
for(int i=0; i <things; i++)
{
System.out.println(randomAdj + " " + rndAnimal);}
因此,我输出的内容将像:“汗流淌的鱼”一样多次,因为我输入了它。 如果我输入3个描述,我怎么能说“汗鱼”,“臭狗”,“慢鱼”? 感谢您的任何帮助。
问题是你得到for循环之外的rndAnimal和randomAdj的值。 因此它只会随机获取值并显示四次。 要解决此问题,请将值分配给循环内的两个字符串。
for(int i=0; i<things; i++){
//gets random animal
String animal = read.nextLine();
String[]anm1 = animal.split(":");
int rnd_Animal =r.nextInt(anm1.length);
String rndAnimal =(anm1[rnd_Animal]);
//gets random adjective
String adj = read.next();
String []adj1 = adj.split(":");
int rndAdj = r.nextInt(adj1.length);
String randomAdj = (adj1[rndAdj]);
System.out.println(randomAdj + " " + rndAnimal);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.