我需要帮助才能让我的随机生成器只生成三个字母:G,R,B。我怎么能这样做,因为B的ASCII代码是66,G是71,R是82.我感谢任何帮助。 我尝试这样开始:
public static void main(String[] args) {
// TODO code application logic here
String color=color();
System.out.println(color);
}
static String color(){
String color=null;
int randnum=(int)(Math.random()*3)+1;
if(randnum==1){
color= "B";
}
return color;
}
}
但我没有得到的是它也会产生其他数字。我只想要G,R,B作为随机数输出
答案 0 :(得分:3)
如果您所做的只是通过随机值分配字母,则不必使其生成确切的数字66,71和82。只需执行(int)(Math.random()* 3)并执行以下操作:
if(letter==0){
letter="B";
}
else if(letter==1){
letter="G";
}
else if(letter==2){
letter="R";
}
答案 1 :(得分:0)
虽然有更简洁的方法,但要证明这一原则,请考虑以下几点:
letter=(int)(Math.random()*100)
if(letter < 33)
letter="B";
else if(letter >= 33 && letter < 66)
letter="G";
else
letter="R";
如果我在一个非平凡的环境中这样做,并且我有可能需要使用不同的字母集再次执行此操作,我会定义一个函数来返回随机选择的元素从数组中传入['B','G','R']。你从来没说过你正在使用什么语言,所以我不愿提供一个例子,但是传入数组并在array.length上绑定随机数。
答案 2 :(得分:0)
match random() % 3 with
| 0 -> B
| 1 -> R
| _ -> G
答案 3 :(得分:0)
如果您正在使用java,这是表示答案的最佳方式
只需将红绿蓝放在数组列表中,然后将其随机化
随机化 List<String> list = new ArrayList<String>();
list.add("RED");
list.add("GREEN");
list.add("blue");
String random = list.get(randomizer.nextInt(list.size()));