我是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);
}
没有人知道我该如何解决。再一次,我是编程新手。
答案 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));