2014-11-02 281 views
0

我得到了一个String[]我想从中获得一个随机值。我试图用另一种方法来说明这个逻辑。这是我的代码到目前为止。如何从字符串数组中获取随机字符串?

public static void main(String[]args) { 
    String [] S = {"aaa", "bbb", "ccc", "ddd", "eee","ggg", "hhh", "iii", "kkk"}; 
} 

public String get() { 
    int i; 

    for(i = 0; i <= 4; i++) { 

    } 
} 

我需要的随机字符串数组出与S的方法get()的,但我真的不知道该怎么做。

回答

4

首先,您必须将S数组移到实例变量或静态变量上,因为它当前位于主方法的本地,并且无法从您的get方法访问。

然后你就可以得到一个随机字符串这样:

private Random rnd = new Random(); 
public String get() 
{ 
    return S[rnd.nextInt(S.length)]; 
} 
+0

向上投票赞成短和干净的说明 – 2014-11-02 10:01:26

+0

谢谢你的建议。但如果我想让S保持静态变量,那么它将以任何其他方式编写代码。 – RHLS 2014-11-02 10:12:51

+0

@Rslh当前S不是一个静态变量,它是静态主要方法的局部变量。如果你想保留它,你可以将它作为参数传递给get()方法。 – Eran 2014-11-02 10:14:49

0

您可以使用java.util.Random生成随机的东西。但是,请记住,它不安全,不是真正的随机。

您可以从阵列S获得随机char S:

String randomString = ""; 
Random rand = new Random(); 
for(int i=0;i<=4;i++) 
{ 
    randomString += S[rand.nextInt(S.length())].charAt(0); 
} 

System.out.println(randomString); 
0

你不需要在获取循环()方法,你需要生成原始数组的长度下方的随机数,并说返回小号[RANDOM_NUMBER]

EDIT

让get方法需要字符串[]

的参数3210
相关问题