java随机字符串数组

时间:2014-04-01 23:52:09

标签: java arrays 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];

我怎么说"如果color = black那么就这样做"或者相同的是绿色或相同的红色"

4 个答案:

答案 0 :(得分:5)

你的意思是......

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;
}

答案 1 :(得分:0)

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"

答案 2 :(得分:0)

对每种颜色使用java equals方法是最简单的方法。

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equals%28java.lang.Object%29

答案 3 :(得分:0)

其他人说决定平等的方法,我会加一些算法。

考虑增加颜色的重量,我看到红色和黑色出现9次而绿色出现一次。我会添加一个对象,其中包含要应用的颜色名称和重量。喜欢{" Green",1},{" Red",9},{" Black",9}。

总结权重并以某种方式对颜色进行排序,并确定随机数下降的位置。

它会使代码更清晰,解决方案更好。