[英]String array in java random
String [] rnum = {"Black", "Red", "Black", "Red", "Black", "Red", "Black","Red",
"Black", "Red", "Black", "Red", "Black", "Red", "Black", "Red","Black", "Red", "Green"};
int A = rnum.length;
//the "Math.random() method will get you a random color
int random = (int) (Math.random() * A);
//randomize the strings
String Color = rnum[random];
我怎么说:“如果颜色=黑色,那么就这样做”,或者对于绿色相同,对于红色相同”
你的意思是...
if(Color.equals("Black")) {
// then do this
} else if(Color.equals("Red"){
// then do this
}
甚至(在Java> = 1.7中)
switch(Color) {
case "Black":
// then do this
break;
case "Red":
// then do this
break;
}
Color
不能大写,因为它可以是Java类名。
为此,您可以使用三元运算符(if-else的缩写):
String color = ( rnum[random].compareTo("Black") == 0 ? ** do something here ** : ** do something if the color is not "Black" ** );
要么:
String color = "";
if(rnum[random].compareTo("Black") == 0) {
// do stuff
}
else {
// it's not black. do other stuff.
}
对于红色和绿色,只需将"Black"
替换为"Red"
或"Green"
。
对每种颜色使用java equals方法是最简单的方法。
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equals%28java.lang.Object%29
其他人说,决定平等的方法,我会加一些关于算法的东西。
考虑增加颜色权重,我看到红色和黑色出现9次,而绿色出现一次。 我将添加一个对象,其中包含颜色名称和要应用的权重。 像{“ Green”,1},{“ Red”,9},{“ Black”,9}。
对权重求和,并以某种方式对颜色进行排序,然后确定随机数的位置。
这将使代码更简洁,解决方案更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.