我如何从数组Java中获取4个随机值

时间:2018-10-03 17:36:44

标签: java arrays random

我是Java编程的新手,现在我想从字符串数组中获取4个随机值,我有以下代码,但是如果我运行我的代码,我会得到4次相同的随机颜色。

 String [] color = {"red","blue","yellow", "purple", "black"};
       int random = (int) (4*  Math.random());
        String randomColors = (color[random]);
        for (int i = 0; i <4 ; i++) {
            System.out.println(randomColors);
        }

没有人知道我该如何解决。再一次,我是编程新手。

6 个答案:

答案 0 :(得分:1)

您需要将随机数生成器放入循环内:

Random rand = new Random();
for (int i = 0; i < 4 ; i++) {
    int rand_int = rand.nextInt(5); // Generate random integers in range 0 to 4
    String randomColors = (color[rand_int]);
    System.out.println(randomColors);
}

由于索引可以增加到4,因此您应该将随机整数值设置为[0,4],否则将永远不会打印最后的颜色“黑色”

答案 1 :(得分:0)

您几乎是正确的答案,唯一的问题是您的 A B C count 2 2 2 语句应位于for循环内,否则每次运行循环时最终都将得到相同的随机值。

res <- data.frame(DF1[1,], row.names = c('count'))
for(n in 1:ncol(DF1)) {
  res[colnames(DF1)[n]] <- sum(DF1[n])
  DF1[!DF1[n]==1] 
  }

答案 2 :(得分:0)

一遍又一遍地做。因此,与其在循环之外创建随机数,不如在循环内部完成。

false

答案 3 :(得分:0)

Random generator = new Random();
int randomIndex = generator.nextInt(myArray.length);
return myArray[randomIndex];

多次重复此操作,您需要一个随机值。

答案 4 :(得分:0)

问题是您的随机数生成器只能运行一次。您可以通过在已编码的for循环内添加代码的第二行和第三行来解决此问题。祝好运!

答案 5 :(得分:-1)

如果要使用随机颜色的新数组,则必须对其进行声明和初始化。

String[] randomColors = String[4];

然后,您必须使用其他数组的随机值填充该数组。要获取随机索引,请按以下步骤操作。

for(int i=0; i<5; i++){
randomcolors[i] = colors[(int )(Math.random() * 4 + 0)];
}

要使用包装器类打印新数组

System.out.println(Arrays.toString(randomcolors));